OK IAN HERE IT IS. PLEASE MAKE SURE THAT THIS INFO IS DISTRIBUTED WITH THE LINUX BCX VERSION SO THAT PEOPLE WILL KNOW HOW TO USE IT. Read the top comments on how to use it for linux. The user MUST know how to create their own Makefile in linux. Use g++, the new gcc has too many things removed from it and into g++. Search this bc.bas for "USING_LINUX" to see the changes. ONLY use console and cgi code - DO NOT USE ANY WINDOWS OR GUI CODE in your program. John Here are examples of actual make files that I used with BCX. Translated to .CPP file on Windows XP PRO. NOTE: "virtuflex" was written entirely with BCX and the virtuflex.cpp file that BCX created was renamed and copied to Slackware linux as "virtuflex.c" The last makefile in this email is the one I currently use. (watch line wrap) -------------------- CFLAGS=-I/usr/local/include/mysql -I. -L./ -L/usr/local/lib/mysql -lmysqlclient CC=gpp CXX=gpp AR=ar all: clean virtuflex clean: rm -f virtuflex virtuflex: gpp virtuflex.c -o virtuflex ${CFLAGS} cp virtuflex /cgi-bin/. ---------------------------------------------------- ---------------------------------------------------- CFLAGS=-I/usr/local/include/mysql -I. -L./ -L/usr/local/lib/mysql -lmysqlclient CC=gcc CXX=gcc AR=ar all: clean cgicell_fx newsparse clean: rm -f cgicell_fx rm -f newsparse rm -f /sbin/newsparse cgicell_fx: gcc cgicell_fx.c -o cgicell_fx ${CFLAGS} cp cgicell_fx /cgi-bin/. newsparse: gcc newsparse.c -o newsparse ${CFLAGS} cp newsparse /sbin/newsparse ---------------------------------------------------- ---------------------------------------------------- THIS ONE IS THE LATEST THAT I HAVE USED AND FOR THE NEWEST SLACKWARE CFLAGS=-g -Wall -I/usr/local/mysql/include -I. CC=g++ AR=ar RANLIB=ranlib LIBS=-L./ -lcgic -L/usr/local/mysql/lib -lmysqlclient -lz all: clean libcgic.a install virtuflex clean: rm -f virtuflex rm -f virtuflex.o rm -f libcgic.a install: libcgic.a cp libcgic.a /usr/local/lib cp cgic.h /usr/local/include @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include. libcgic.a: cgic.o cgic.h rm -f libcgic.a $(AR) rc libcgic.a cgic.o $(RANLIB) libcgic.a #mingw32 and cygwin users: replace .cgi with .exe virtuflex: virtuflex.o libcgic.a g++ virtuflex.o -o virtuflex $(LIBS) cp virtuflex /cgi-bin/. #g++ virtuflex $(CFLAGS) virtuflex.c $(CFLAGS) $(LIBS) #CFG=/usr/local/mysql/bin/mysql_config #sh -c "g++ -o virtuflex `$CFG --cflags` virtuflex.c `$CFG --libs` -lcgic" ------------------------------------------------------------------- PS. Every linux file should START with these lines $LINUX '$CPP $NOWIN $NOMAIN The $CPP is uncommented when you compile the app on Windows. The $NOMAIN is only needed if you already have a main() in your code - of course. If I recall correctly, $LINUX *must* be the 1st line in the file. John NOTE 2: Ian, please also mention that the word "LINUX" is used in this version of BCX, but it really means "ANSI C" to be more specific. Same code should run on MAC's too. Oh, PellesC is needed to make it work. I have not tried other compilers on Windows. But pellesC is closer to ANSI C than any other I could find. An "upgrade" to this concept would be to update the old "C" runtime functions with their newer counterparts so that VC++ and newer languages will compile BCX code without warnings of obsolete and unsafe functions being used. John