From: Tijl C. <ti...@ul...> - 2003-01-05 03:48:20
|
Hello to all TiLP developers, Today I finished porting TiLP to FreeBSD. A set of patches for each package is available at http://tijl.studentenweb.org/tilp/ Currently I only have the Grey TIGL working. I might take a look at the others when I finish my exams at the end of January. What follows are a few notes about the patch sets. ** General FreeBSD currently doesn't have <stdint.h>. I believe the upcoming 5.0 will support it though. To overcome this I encapsulated each #include <stdint.h> with: +#ifdef HAVE_STDINT_H #include <stdint.h> +#else +#include <inttypes.h> +#endif Most of the patches just do this. I realise this isn't really a nice structure to have in your code, so you may not want to apply these. I also added LIBS="$LIBS $INTLLIBS" in every ./configure. With this line each package can be compiled with gettext in libintl in case glib12 isn't available. For libticalcs and tilp this doesn't matter much since they depend on glib12 anyway. Next I noticed the ti*-config scripts had a bug when the --cflags option was given. They returned the dir without the -I prefix. ** libticables 3.5.3 I added a few lines to ./configure to define __FBSD__. These should be added to configure.ac though. I didn't because then I prevented using autoconf/automake/... during compilation. I wonder why you don't use any gcc predefined constants though. I believe either unix or __unix__ is defined on every unix platform. This is what I get on a FreeBSD box. tijl tijl% gcc -dM -E - < /dev/null #define __FreeBSD__ 4 #define __FreeBSD_cc_version 460001 #define __i386__ 1 #define __i386 1 #define __GNUC_MINOR__ 95 #define i386 1 #define __unix 1 #define __unix__ 1 #define __GNUC__ 2 #define __ELF__ 1 #define unix 1 tijl tijl% Further on, the serial devices on FreeBSD are named /dev/cuaa(0|1|2|3). The parallel ports are /dev/lpt(0|1|2), but I haven't added these yet, since the parallel cable isn't supported yet anyway. On another note, FreeBSD doesn't define O_SYNC. With O_FSYNC however, things work perfect. ** libtifiles 0.4.0 No system specific patches were necessary. <stdint.h> is used quite a lot though. ** libticalcs 4.2.8 In src/calc_def.h I replaced <glib-1.2/glib.h> with <glib.h>, since I believe the glib-1.2 part is system dependent and ./configure adds a proper -I(include) to CFLAGS anyway. The downside is that TiLP's configure script chokes when checking for <tilp/calc_def.h>, but this can be overcome by adding the proper -I(include) to CPPFLAGS. At the moment this is done automatically by a Makefile I made for TiLP's entry in the FreeBSD ports tree, but I can imagine it isn't so convenient when you have to run ./configure manually. Probably, some construction can be figured out, like adding a CPPFLAGS= line at the same place as LIBS= CFLAGS= lines currently in there somewhere. Related to this, I could comment out a redefinition of HAVE_TILP_TICALCS_H in TiLP's src/tilibs.h. ** tilp 6.00 pre15 On some lines in the configure script $(prefix) is used. This gave some problems so I replaced them by $prefix. Should there be any difference between these two? src/term_cb.c wants to include error.h, but there doesn't seem to be any. ** That should be it. I hope this can be of help to somebody. I'm not submitting anything to the FreeBSD ports tree yet as I first want to check a few more things, maybe take a look at the usb lib/driver and that's all for after exams. At the moment I'm just happy to be able to connect to my calc! Tijl Coosemans |