2008-11-18 01:36 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/make_gcc.sh
  * harbour/make_gcc.mak
    ! fixed GCC builds broken by modifications in common.mak
This commit is contained in:
Przemyslaw Czerpak
2008-11-18 00:35:51 +00:00
parent 4da9dbd24d
commit 2fb971abd9
3 changed files with 42 additions and 25 deletions

View File

@@ -8,6 +8,11 @@
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2008-11-18 01:36 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_gcc.sh
* harbour/make_gcc.mak
! fixed GCC builds broken by modifications in common.mak
2008-11-16 23:22 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/contrib/gtwvg/gtwvg.c
! Resizing: some recent changes reverted back.

View File

@@ -130,17 +130,22 @@ VMMT_LIB_OBJS = $(subst $(OBJ_DIR),$(MT_OBJ_DIR),$(VM_LIB_OBJS))
# Do not perform an extra compilation phase for shared libraries
# if gcc -fPIC compilation flag is already passed to a makefile
ifeq ($(findstring -fPIC,$(C_USR)),-fPIC)
DLL_OBJS := $(TMP_DLL_OBJS)
ifneq ($(findstring -fPIC,$(C_USR)),)
DLL_OBJS = $(TMP_DLL_OBJS) $(VM_DLL_OBJS)
MTDLL_OBJS = $(TMP_DLL_OBJS) $(VM_DLL_OBJS:$(OBJ_DIR)/%=$(MT_OBJ_DIR)/%)
else
DLL_OBJS := $(patsubst $(OBJ_DIR)%,$(DLL_OBJ_DIR)%,$(TMP_DLL_OBJS))
DLL_OBJS := $(patsubst $(OBJ_DIR)/%,$(DLL_OBJ_DIR)/%,$(TMP_DLL_OBJS) $(VM_DLL_OBJS))
MTDLL_OBJS := $(TMP_DLL_OBJS:$(OBJ_DIR)/%=$(DLL_OBJ_DIR)/%) $(VM_DLL_OBJS:$(OBJ_DIR)/%=$(MTDLL_OBJ_DIR)/%)
endif
# DLLs on Windows require IMPORT lib
# and an additional compiler phase
ifneq ($(findstring $(HB_ARCHITECTURE),w32),)
HB_DLL_IMPLIB := $(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT))
HB_DLL_IMPLIB := $(HARBOUR_DLL:%$(DLLEXT)=%$(LIBEXT))
HB_IMPLIB_PART := -Wl,--out-implib,$(HB_DLL_IMPLIB)
HB_DLL_IMPLIBMT := $(HARBOURMT_DLL:%$(DLLEXT)=%$(LIBEXT))
HB_IMPLIBMT_PART := -Wl,--out-implib,$(HB_DLL_IMPLIBMT)
endif
#**********************************************************
@@ -242,9 +247,18 @@ $(DLL_OBJ_DIR)/%$(OBJEXT) : %.prg $(HARBOUR_EXE)
$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)/ $<
$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)/$(<F:.prg=.c)
#----------------------------------------------------------
# General *.prg --> *.o COMPILE rule for SHARED MT Libraries
$(MTDLL_OBJ_DIR)/%$(OBJEXT) : %.prg $(HARBOUR_EXE)
$(HB) $(HARBOURFLAGSDLL) -o$(MTDLL_OBJ_DIR)/ $<
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -o$@ $(MTDLL_OBJ_DIR)/$(<F:.prg=.c)
#----------------------------------------------------------
# General *.c --> *.o COMPILE rule for SHARED Libraries
$(DLL_OBJ_DIR)/%$(OBJEXT) : %.c
$(CC) $(CLIBFLAGSDLL) -o$@ $<
#----------------------------------------------------------
# General *.c --> *.o COMPILE rule for SHARED MT Libraries
$(MTDLL_OBJ_DIR)/%$(OBJEXT) : %.c
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -o$@ $<
#**********************************************************
# General *.o -> *.a LIBRARY CREATION rule
#$(LIB_DIR)/%$(LIBEXT) : %$(OBJEXT)
@@ -428,20 +442,19 @@ $(HARBOUR_DLL) :: StdLibs
$(HARBOUR_DLL) :: $(DLL_OBJS)
$(CC) $(LDFLAGSDLL) -o $@ $^ $(HB_OS_LIBS) $(HB_IMPLIB_PART)
#**********************************************************
$(HARBOURMT_DLL) :: StdLibs
$(HARBOURMT_DLL) :: $(MTDLL_OBJS)
$(CC) $(LDFLAGSDLL) -o $@ $^ $(HB_OS_LIBS) $(HB_IMPLIBMT_PART)
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: $(HARBOUR_DLL)
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)/mainstd$(OBJEXT) \
$(HBTEST_EXE_OBJS:$(OBJ_DIR)/%=$(DLL_OBJ_DIR)/%)
$(HBTESTDLL_EXE) :: $(OBJ_DIR)/mainstd$(OBJEXT) $(HBTEST_EXE_OBJS)
$(CC) $(CEXEFLAGSDLL) -o$@ $^ -L$(BIN_DIR) -l$(HARBOUR_DLL:$(BIN_DIR)/lib%.so=%) $(HB_OS_LIBS)
#**********************************************************
$(HBRUNDLL_EXE) :: $(HARBOUR_DLL)
$(HBRUNDLL_EXE) :: $(DLL_OBJ_DIR)/mainstd$(OBJEXT) \
$(HBRUN_EXE_OBJS:$(OBJ_DIR)/%=$(DLL_OBJ_DIR)/%)
$(HBRUNDLL_EXE) :: $(OBJ_DIR)/mainstd$(OBJEXT) $(HBRUN_EXE_OBJS)
$(CC) $(CEXEFLAGSDLL) -o$@ $^ -L$(BIN_DIR) -l$(HARBOUR_DLL:$(BIN_DIR)/lib%.so=%) $(COMPILER_LIB) $(HB_OS_LIBS)
#----------------------------------------------------------
$(DLL_OBJ_DIR)/mainstd$(OBJEXT) : $(VM_DIR)/mainstd.c
$(CC) $(CLIBFLAGS) -o$@ $<
#**********************************************************
#**********************************************************
@@ -464,10 +477,10 @@ $(DLL_OBJ_DIR)/pptable.c : $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch $(INCLUDE_DIR)/std
ifeq ("$(HB_REBUILD_PARSER)","yes")
$(OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.y
bison --no-line -d $** -o$@
bison --no-line -d $^ -o$@
$(OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.y
bison --no-line -d $** -o$@
bison --no-line -d $^ -o$@
else
@@ -484,28 +497,23 @@ endif
#**********************************************************
#$(OBJ_DIR)/macrol.c : $(MACRO_DIR)/macro.l
# flex -Phb_macro -i -8 -o$@ $**
# flex -Phb_macro -i -8 -o$@ $^
#$(OBJ_DIR)/harbourl.c : $(COMPILER_DIR)/harbour.l
# flex -Phb_comp -i -8 -o$@ $**
# flex -Phb_comp -i -8 -o$@ $^
#$(OBJ_DIR)/harbourl$(OBJEXT) : $(OBJ_DIR)/harbourl.c
#$(OBJ_DIR)/macrol$(OBJEXT) : $(OBJ_DIR)/macrol.c
#**********************************************************
$(OBJ_DIR)/harboury$(OBJEXT) : $(OBJ_DIR)/harboury.c
$(OBJ_DIR)/macroy$(OBJEXT) : $(OBJ_DIR)/macroy.c
#**********************************************************
ifeq ("$(HB_REBUILD_PARSER)","yes")
$(DLL_OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.y
bison --no-line -d $** -o$@
bison --no-line -d $^ -o$@
$(DLL_OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.y
bison --no-line -d $** -o$@
bison --no-line -d $^ -o$@
else
@@ -522,10 +530,10 @@ endif
#**********************************************************
#$(DLL_OBJ_DIR)/macrol.c : $(MACRO_DIR)/macro.l
# flex -Phb_macro -i -8 -o$@ $**
# flex -Phb_macro -i -8 -o$@ $^
#$(DLL_OBJ_DIR)/harbourl.c : $(COMPILER_DIR)/harbour.l
# flex -Phb_comp -i -8 -o$@ $**
# flex -Phb_comp -i -8 -o$@ $^
#$(DLL_OBJ_DIR)/harbourl$(OBJEXT) : $(DLL_OBJ_DIR)/harbourl.c
#$(DLL_OBJ_DIR)/macrol$(OBJEXT) : $(DLL_OBJ_DIR)/macrol.c
@@ -546,6 +554,7 @@ CLEAN: doClean
doClean:
-$(DEL) $(HB_BUILD_TARGETS)
-$(DEL) $(HB_DLL_IMPLIB)
-$(DEL) $(HB_DLL_IMPLIBMT)
-$(DEL) $(OBJ_DIR)/*$(OBJEXT)
-$(DEL) $(OBJ_DIR)/*.c
-$(DEL) $(OBJ_DIR)/*.h

View File

@@ -163,7 +163,8 @@ export HB_GT_LIST="$HB_GT_LIST $GT_LIST"
export HB_GT_OBJS="$HB_GT_OBJS $GT_OBJS"
export CC LD
mkdir -p obj/$HB_CC_NAME lib/$HB_CC_NAME bin/$HB_CC_NAME
mkdir -p obj/$HB_CC_NAME/mt obj/$HB_CC_NAME/mt_dll obj/$HB_CC_NAME/dll \
lib/$HB_CC_NAME bin/$HB_CC_NAME
# Convert common.mak (for BCC/VC) to common.cf (GCC)
@@ -175,6 +176,7 @@ then
fi
sed -e 's/;/ /g' \
-e 's!\\\\!/!g' \
-e 's!\\\(.\)!/\1!g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" != "\(.*\)"/ifneq (\1,\2)/g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" == "\(.*\)"/ifeq (\1,\2)/g' \
@@ -184,6 +186,7 @@ sed -e 's/;/ /g' \
-e 's/^!endif/endif/g' \
-e 's/^!include/include/g' \
-e 's/^HB_BUILD_TARGETS \=/HB_BUILD_TARGETS \:\=/g' \
-e 's/^HBFLAGSCMN \=/HBFLAGSCMN \:\=/g' \
common.mak > common.cf
$MAKE -r -f make_gcc.mak $MK_USR $*