diff --git a/harbour/ChangeLog b/harbour/ChangeLog index cb887c54ff..e6a67acb03 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-08-26 18:15 UTC+0100 Marek Paliwoda (mpaliwoda at interia pl) + * harbour/makefile.gc + * Added a DIRTY hack for Windows systems to allow + building either CONSOLE or GUI programs with gcc. + A new library libmainstd.a is created. This library + should be added to a link libraries if programs are + CONSOLE based. + 2007-08-25 12:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapi.h * harbour/source/vm/arrays.c diff --git a/harbour/makefile.gc b/harbour/makefile.gc index 8446a32050..368f1aaca6 100644 --- a/harbour/makefile.gc +++ b/harbour/makefile.gc @@ -96,6 +96,25 @@ include common.cf #********************************************************** +# Hack for WINDOWS systems. We're removing mainstd file +# from VM lib and we're putting it into a new library +# libmainstd.a to allow building either CONSOLE or GUI +# programs, depending on which library we're linking +# against. If we're linking against libmainstd we're +# building CONSOLE programs. Otherwise we're building +# GUI programs without console. Please note IT IS A +# DIRTY HACK and any better solution is HIGHLY WELCOME +ifeq ($(HB_ARCHITECTURE),w32) +MAIN_LIB = $(LIB_DIR)/$(LIBPREF)mainstd$(LIBEXT) +MAIN_LIB_OBJS = $(OBJ_DIR)/mainstd$(OBJEXT) + +VM_STATIC_LIB_OBJS := $(VM_STATIC_LIB_OBJS:$(OBJ_DIR)/mainstd$(OBJEXT)=) +STANDARD_STATIC_HBLIBS := $(STANDARD_STATIC_HBLIBS) $(MAIN_LIB) +HB_BUILD_TARGETS := $(MAIN_LIB) $(HB_BUILD_TARGETS) +endif + +#********************************************************** + #.SUFFIXES: $(EXEEXT) $(LIBEXT) $(OBJEXT) .prg .c .l .y #********************************************************** @@ -255,6 +274,11 @@ $(COMPILER_LIB) : $(COMPILER_LIB_OBJS) $(VM_LIB) : $(VM_LIB_OBJS) $(MKLIB) $(ARFLAGS) $@ $^ #********************************************************** +ifeq ($(HB_ARCHITECTURE),w32) +$(MAIN_LIB) : $(MAIN_LIB_OBJS) + $(MKLIB) $(ARFLAGS) $@ $^ +endif +#********************************************************** $(RTL_LIB) : $(RTL_LIB_OBJS) $(MKLIB) $(ARFLAGS) $@ $^ #**********************************************************