From 1a0304ef55f053198fd1073b763ba65d06782350 Mon Sep 17 00:00:00 2001 From: "David G. Holm" Date: Thu, 8 Jul 1999 04:23:11 +0000 Subject: [PATCH] See ChangeLog entry 19990707-23:10 EDT David G. Holm --- harbour/ChangeLog | 20 +++++++++-- harbour/harbour.b31 | 65 +++++++++++++++++++++++++++++++++++ harbour/include/init.h | 8 ++--- harbour/makefile.icc | 32 ++++++++--------- harbour/source/rtl/transfrm.c | 2 +- 5 files changed, 103 insertions(+), 24 deletions(-) create mode 100644 harbour/harbour.b31 diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ea8b853ff6..c6f08b8c06 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,17 @@ +19990707-23:10 EDT David G. Holm + + harbour.b31 + + Separate harbour.exe makefile, so that it is possible to build + 16-bit Harbour programs using a 32-bit compiler and the 16-bit + libraries or by using a 16-bit compiler and libraries. + * makefile.icc + + Put bison and flex back into operation after finding OS/2 versions + of each that work as expected: gnubison.zip and flex254-2.zip from + http://www.leo.org/pub/comp/os/os2/leo/gnu/index.html + * include/init.h + ! Missing ; after return 1 in HB_STARTUP_SYMBOLS_END for MSC and IBMCPP + * source/rtl/transfrm.c + ! Missing ; after HB_INIT_SYMBOLS_END + 19990707-20:45 EDT David G. Holm * doc/gmake.txt + Added NOTES section with steps needed for a clean build @@ -63,7 +77,7 @@ tests/working : CVSed by Andi Jahja * source/rtl/natmsg/msgspa.c - + 19990707-16:20:20 Bruno Cantero CVSed by Andi Jahja @@ -249,7 +263,7 @@ include/extend.h * source/compiler/harbour.y * changed generated C code to support new HB_INIT_SYMBOLS_* macros - + * source/rtl/arrays.c * source/rtl/classes.c * source/rtl/console.c @@ -266,7 +280,7 @@ include/extend.h * source/rtl/transfrm.c * changed to use he new definition of HB_INIT_SYMBOLS_* and HB_CALL_ON_STARTUP_* macros - + * tests/working/box.prg * changed "BOX.CH" to lowercase (Linux is case-sensitive OS) diff --git a/harbour/harbour.b31 b/harbour/harbour.b31 new file mode 100644 index 0000000000..6ae6563727 --- /dev/null +++ b/harbour/harbour.b31 @@ -0,0 +1,65 @@ +# makefile for Borland C/C++ 16 bits Harbour compiler + +.path.asm = source\compiler +.path.c = source\rtl +.path.h = include +.path.l = source\compiler +.path.y = source\compiler +.path.exe = bin +.path.lib = libs\b16 +.path.obj = obj +.path.prg = source\rtl +.path.hbp = source\hbpp + +c_opt = -mh -O2 -I.\include -DUSE_GTAPI +#c_opt = -mh -O2 -I.\include + +PROJECT: harbour.exe + +{source\compiler}.c{obj}.obj: + bcc -c $(c_opt) -Isource\compiler -o$@ $< + +{source\hbpp}.c{obj}.obj: + bcc -c $(c_opt) -Isource\hbpp -o$@ $< + +.c.obj: + bcc -c $(c_opt) -o$@ $< + tlib .\libs\b16\harbour.lib -+$@,, + +.asm.obj: + tasm -I.\include $< $@ + tlib .\libs\b16\harbour.lib -+$@,, + +harbour.exe : harboury.obj harbourl.obj lex_t1.obj lex_t2.obj lex_t3.obj harbour.obj genobj32.obj \ + hbpp.obj hbppint.obj table.obj + echo -ebin\harbour.exe obj\harboury.obj > b31.bc + echo obj\harbourl.obj obj\lex_t1.obj >> b31.bc + echo obj\lex_t2.obj obj\lex_t3.obj >> b31.bc + echo obj\harbour.obj obj\genobj32.obj >> b31.bc + echo obj\hbpp.obj obj\hbppint.obj obj\table.obj >> b31.bc + bcc $(c_opt) -Isource\compiler @b31.bc + +fixflex.obj : source\compiler\fixflex.c +genobj32.obj : source\compiler\genobj32.c +harbour.obj : source\compiler\harbour.c +harbourl.obj : source\compiler\harbourl.c harbour.l +harboury.obj : source\compiler\harboury.c harbour.y +hbpp.obj : source\hbpp\hbpp.c source\hbpp\harb.h +hbppint.obj : source\hbpp\hbppint.c source\hbpp\harb.h +lex_t1.obj : source\compiler\lex_t1.c harbour.l +lex_t2.obj : source\compiler\lex_t2.c harbour.l +lex_t3.obj : source\compiler\lex_t3.c harbour.l +table.obj : source\hbpp\table.c + +source\compiler\harboury.c : harbour.y + bison -d -v -y -osource\compiler\harboury.c source\compiler\harbour.y + +fixflex.exe : fixflex.obj + bcc -mh $(c_opt) -ebin\fixflex.exe obj\fixflex.obj + +source\compiler\lex_t1.c :: harbour.l fixflex.exe +source\compiler\lex_t2.c :: harbour.l fixflex.exe +source\compiler\harbourl.c :: harbour.l fixflex.exe + flex -i -8 -osource\compiler\harbourl.c source\compiler\harbour.l + if exist source\compiler\harbourl.bak del source\compiler\harbourl.bak + fixflex source\compiler\harbourl.c source\compiler\lex_t1.c source\compiler\lex_t2.c source\compiler\lex_t3.c -P- diff --git a/harbour/include/init.h b/harbour/include/init.h index 7d00e1e5a5..8b1daf3444 100644 --- a/harbour/include/init.h +++ b/harbour/include/init.h @@ -28,7 +28,7 @@ static SYMBOL symbols[] = { #ifdef __GNUC__ #define HB_INIT_SYMBOLS_BEGIN( func ) \ static SYMBOL symbols[] = { - + #define HB_INIT_SYMBOLS_END( func ) }; \ static void __attribute__ ((constructor)) func( void ) \ { \ @@ -46,7 +46,7 @@ static SYMBOL symbols[] = { #ifdef __BORLANDC__ #define HB_INIT_SYMBOLS_BEGIN( func ) \ static SYMBOL symbols[] = { - + #define HB_INIT_SYMBOLS_END( func ) }; \ static void func( void ) \ { \ @@ -74,14 +74,14 @@ static SYMBOL symbols[] = { #define HB_CALL_ON_STARTUP_BEGIN( func ) \ static int func( void ) { -#define HB_CALL_ON_STARTUP_END( func ) return 1 }; \ +#define HB_CALL_ON_STARTUP_END( func ) return 1; } \ static int static_int_##func = func() #endif #ifdef __WATCOMC__ #define HB_INIT_SYMBOLS_BEGIN( func ) \ static SYMBOL symbols[] = { - + #define HB_INIT_SYMBOLS_END( func ) }; \ static int func( void ) \ { \ diff --git a/harbour/makefile.icc b/harbour/makefile.icc index 5f2b1c8199..4ad75ae166 100644 --- a/harbour/makefile.icc +++ b/harbour/makefile.icc @@ -197,20 +197,16 @@ $(path_obj)\stringp.obj : {$(path_prg)}\stringp.prg $(path_h)\pcode.h $(path_h icc /C+ $(c_opt) /Fo$@ /Tp$< ilib .\libs\icc\hbtools.lib -+$@,, -$(path_exe)\harbour.exe : $(path_obj)\harboury.obj $(path_obj)\harbourl.obj $(path_obj)\genobj32.obj $(path_obj)\harbour.obj $(path_obj)\hbpp.obj $(path_obj)\hbppint.obj $(path_obj)\table.obj - icc /C- $(c_opt) /Fe$(path_exe)\harbour.exe /Isource\compiler \ - $(path_obj)\harboury.obj \ - $(path_obj)\harbourl.obj \ - $(path_obj)\genobj32.obj \ - $(path_obj)\hbpp.obj \ - $(path_obj)\hbppint.obj \ - $(path_obj)\table.obj \ - $(path_obj)\harbour.obj +source\compiler\harboury.c : source\compiler\harbour.y + bison -d -v -y -osource\compiler\harboury.c source\compiler\harbour.y + +source\compiler\harbourl.c : source\compiler\harbour.l + flex -i -8 -osource\compiler\harbourl.c source\compiler\harbour.l $(path_obj)\genobj32.obj : {$(path_c)}genobj32.c $(path_obj)\harbour.obj : {$(path_c)}harbour.c -$(path_obj)\harbourl.obj : {$(path_c)}harbourl.c -$(path_obj)\harboury.obj : {$(path_c)}harboury.c +$(path_obj)\harbourl.obj : source\compiler\harbourl.c +$(path_obj)\harboury.obj : source\compiler\harboury.c $(path_obj)\hbpp.obj : {$(path_c)}hbpp.c $(path_obj)\hbppint.obj : {$(path_c)}hbppint.c $(path_obj)\table.obj : {$(path_c)}table.c @@ -221,8 +217,12 @@ $(path_obj)\table.obj : {$(path_c)}table.c {source\hbpp}.c{$(path_obj)}.obj: icc /C+ $(c_opt) /Fo$@ /Tp$< -harboury.c : {$(path_y)}harbour.y -# bison -d -v -y -osource\compiler\harboury.c source\compiler\harbour.y - -harbourl.c : {$(path_l)}harbour.l -# flex -i -8 -osource\compiler\harbourl.c -Sd:\bin\emx\lib\flexskel.cc -Hd:\bin\emx\include\flexskel.h source\compiler\harbour.l +$(path_exe)\harbour.exe : $(path_obj)\harboury.obj $(path_obj)\harbourl.obj $(path_obj)\genobj32.obj $(path_obj)\harbour.obj $(path_obj)\hbpp.obj $(path_obj)\hbppint.obj $(path_obj)\table.obj + icc /C- $(c_opt) /Fe$(path_exe)\harbour.exe /Isource\compiler \ + $(path_obj)\harboury.obj \ + $(path_obj)\harbourl.obj \ + $(path_obj)\genobj32.obj \ + $(path_obj)\hbpp.obj \ + $(path_obj)\hbppint.obj \ + $(path_obj)\table.obj \ + $(path_obj)\harbour.obj diff --git a/harbour/source/rtl/transfrm.c b/harbour/source/rtl/transfrm.c index 53772e2f51..4ab1ec5e68 100644 --- a/harbour/source/rtl/transfrm.c +++ b/harbour/source/rtl/transfrm.c @@ -27,7 +27,7 @@ HARBOUR HB_TRANSFORM( void ); HB_INIT_SYMBOLS_BEGIN( Transfrm__InitSymbols ) { "TRANSFORM" , FS_PUBLIC, HB_TRANSFORM , 0 } -HB_INIT_SYMBOLS_END( Transfrm__InitSymbols ) +HB_INIT_SYMBOLS_END( Transfrm__InitSymbols ); #pragma startup Transfrm__InitSymbols extern STACK stack;