2008-09-08 13:01 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
* contrib/mtpl_gcc.mak
* Changed the location of intermediate obj and c files from
/obj/<arch>/ to local [/contrib/<contribname>/]obj/<arch>/
dir so that similar filenames across different contribs
would never interfere with each other anymore when using
non-GNU make. This was a difficult to detect problem,
especially when someone is trying to use custom contribs,
and even more so if these custom contribs happen to have
3rd party code with non Harbour controlled filenames. This
change is also an important last step to make contribs
fully self-containing.
; TODO: mtpl_gcc.mak support has to be finished by someone
familiar with bash.
; NOTE: This change shouldn't go to 1.0.1 until well tested
and reviewed.
; NOTE: As a consequence of the above, from now on a
'make_*.bat clean' won't anymore clean the objects/.c
file of all contribs. If you hadn't so so far, now you'll
need to explicitly call 'contrib/make_*.all.bat clean'
to do that.
* contrib/mtpl_gcc.mak
* make_gcc.mak
% HB_ARCHITECTURE hack from cyg to w32 removed,
as cyg is not a valid public architecture name
in Harbour. cyg is used in make_gcc.sh internally, and
it's automatically converted to w32 before using
make_gcc.mak, so it would seem that this is solved
at the right place already, and the hack is not needed.
This commit is contained in:
@@ -8,6 +8,39 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
|
||||
*/
|
||||
|
||||
2008-09-08 13:01 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/mtpl_b32.mak
|
||||
* contrib/mtpl_vc.mak
|
||||
* contrib/mtpl_gcc.mak
|
||||
* Changed the location of intermediate obj and c files from
|
||||
/obj/<arch>/ to local [/contrib/<contribname>/]obj/<arch>/
|
||||
dir so that similar filenames across different contribs
|
||||
would never interfere with each other anymore when using
|
||||
non-GNU make. This was a difficult to detect problem,
|
||||
especially when someone is trying to use custom contribs,
|
||||
and even more so if these custom contribs happen to have
|
||||
3rd party code with non Harbour controlled filenames. This
|
||||
change is also an important last step to make contribs
|
||||
fully self-containing.
|
||||
; TODO: mtpl_gcc.mak support has to be finished by someone
|
||||
familiar with bash.
|
||||
; NOTE: This change shouldn't go to 1.0.1 until well tested
|
||||
and reviewed.
|
||||
; NOTE: As a consequence of the above, from now on a
|
||||
'make_*.bat clean' won't anymore clean the objects/.c
|
||||
file of all contribs. If you hadn't so so far, now you'll
|
||||
need to explicitly call 'contrib/make_*.all.bat clean'
|
||||
to do that.
|
||||
|
||||
* contrib/mtpl_gcc.mak
|
||||
* make_gcc.mak
|
||||
% HB_ARCHITECTURE hack from cyg to w32 removed,
|
||||
as cyg is not a valid public architecture name
|
||||
in Harbour. cyg is used in make_gcc.sh internally, and
|
||||
it's automatically converted to w32 before using
|
||||
make_gcc.mak, so it would seem that this is solved
|
||||
at the right place already, and the hack is not needed.
|
||||
|
||||
2008-09-08 11:44 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* doc/whatsnew.txt
|
||||
* doc/dirstruc.txt
|
||||
|
||||
@@ -81,7 +81,8 @@ HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib
|
||||
HB_CC_DIRNAME = $(_HB_CC_NAME)
|
||||
!endif
|
||||
|
||||
OBJ_DIR = $(HB_ROOT)\obj\$(HB_CC_DIRNAME)\\
|
||||
OBJ_ROOT = obj
|
||||
OBJ_DIR = $(OBJ_ROOT)\$(HB_CC_DIRNAME)\\
|
||||
LIB_DIR = $(HB_ROOT)\lib\$(HB_CC_DIRNAME)\\
|
||||
BIN_DIR = $(HB_ROOT)\bin\$(HB_CC_DIRNAME)\\
|
||||
|
||||
@@ -160,14 +161,17 @@ $(OBJ_DIR);\
|
||||
#**********************************************************
|
||||
# General *.c --> *.obj COMPILE rule for STATIC Libraries
|
||||
{$(ALL_LIB_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT):
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(CC) $(CLIBFLAGS) -o$@ $<
|
||||
#**********************************************************
|
||||
# General *.cpp --> *.obj COMPILE rule for STATIC Libraries
|
||||
{$(ALL_LIB_SRC_DIRS)}.cpp{$(OBJ_DIR)}$(OBJEXT):
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(CC) $(CLIBFLAGS: -P= ) -P -o$@ $<
|
||||
#**********************************************************
|
||||
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
|
||||
{$(ALL_LIB_SRC_DIRS)}.prg{$(OBJ_DIR)}$(OBJEXT):
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
|
||||
$(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c
|
||||
#**********************************************************
|
||||
@@ -205,6 +209,8 @@ doClean:
|
||||
@_hbdeloa.bat
|
||||
@if exist _hbdeloa.bat $(DEL) _hbdeloa.bat > nul
|
||||
@if exist _hbdeloo.bat $(DEL) _hbdeloo.bat > nul
|
||||
@if exist "$(OBJ_DIR)" rd "$(OBJ_DIR)" > nul 2> nul
|
||||
@if exist "$(OBJ_ROOT)" rd "$(OBJ_ROOT)" > nul 2> nul
|
||||
|
||||
!if "$(HB_INSTALL_PREFIX)" == "$(HB_ROOT)"
|
||||
@if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul
|
||||
|
||||
@@ -26,14 +26,6 @@ endif
|
||||
|
||||
#**********************************************************
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),cyg)
|
||||
# Revert Cygwin architecture to w32.
|
||||
# After all it's under Windows OS.
|
||||
HB_ARCHITECTURE = w32
|
||||
endif
|
||||
|
||||
#**********************************************************
|
||||
|
||||
ifndef ECHO
|
||||
ECHO = echo
|
||||
endif
|
||||
@@ -88,7 +80,8 @@ ifndef HB_CC_DIRNAME
|
||||
HB_CC_DIRNAME = $(_HB_CC_NAME)
|
||||
endif
|
||||
|
||||
OBJ_DIR = $(HB_ROOT)/obj/$(HB_CC_DIRNAME)/
|
||||
OBJ_ROOT = obj
|
||||
OBJ_DIR = $(OBJ_ROOT)/$(HB_CC_DIRNAME)/
|
||||
LIB_DIR = $(HB_ROOT)/lib/$(HB_CC_DIRNAME)/
|
||||
BIN_DIR = $(HB_ROOT)/bin/$(HB_CC_DIRNAME)/
|
||||
|
||||
|
||||
@@ -78,7 +78,8 @@ HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib
|
||||
HB_CC_DIRNAME = $(_HB_CC_NAME)
|
||||
!endif
|
||||
|
||||
OBJ_DIR = $(HB_ROOT)\obj\$(HB_CC_DIRNAME)\\
|
||||
OBJ_ROOT = obj
|
||||
OBJ_DIR = $(OBJ_ROOT)\$(HB_CC_DIRNAME)\\
|
||||
LIB_DIR = $(HB_ROOT)\lib\$(HB_CC_DIRNAME)\\
|
||||
BIN_DIR = $(HB_ROOT)\bin\$(HB_CC_DIRNAME)\\
|
||||
|
||||
@@ -151,14 +152,17 @@ LDFLAGS = $(LDFLAGS)
|
||||
#**********************************************************
|
||||
# General *.c --> *.obj COMPILE rule for STATIC Libraries
|
||||
{.}.c{$(OBJ_DIR)}$(OBJEXT)::
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
#**********************************************************
|
||||
# General *.cpp --> *.obj COMPILE rule for STATIC Libraries
|
||||
{.}.cpp{$(OBJ_DIR)}$(OBJEXT)::
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(CC) $(CLIBFLAGS: -TC= -TP) -Fo$(OBJ_DIR)\ $<
|
||||
#**********************************************************
|
||||
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
|
||||
{.}.prg{$(OBJ_DIR)}$(OBJEXT):
|
||||
if not exist "$(OBJ_DIR)" md "$(OBJ_DIR)" > nul
|
||||
$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
|
||||
#**********************************************************
|
||||
@@ -194,6 +198,8 @@ doClean:
|
||||
<<KEEP
|
||||
@if exist _hbdeloa.bat $(DEL) _hbdeloa.bat > nul
|
||||
@if exist _hbdeloo.bat $(DEL) _hbdeloo.bat > nul
|
||||
@if exist "$(OBJ_DIR)" rd "$(OBJ_DIR)" > nul 2> nul
|
||||
@if exist "$(OBJ_ROOT)" rd "$(OBJ_ROOT)" > nul 2> nul
|
||||
|
||||
!if "$(HB_INSTALL_PREFIX)" == "$(HB_ROOT)"
|
||||
@if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul
|
||||
|
||||
@@ -61,14 +61,6 @@
|
||||
|
||||
#**********************************************************
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),cyg)
|
||||
# Revert Cygwin architecture to w32.
|
||||
# After all it's under Windows OS.
|
||||
HB_ARCHITECTURE = w32
|
||||
endif
|
||||
|
||||
#**********************************************************
|
||||
|
||||
ifndef ECHO
|
||||
ECHO = echo
|
||||
endif
|
||||
@@ -103,8 +95,8 @@ endif
|
||||
# *before* common.cf is included
|
||||
|
||||
OBJEXT=.o
|
||||
EXEEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 cyg dos os2),.exe)
|
||||
DLLEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 cyg dos os2),.dll,.so)
|
||||
EXEEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 dos os2),.exe)
|
||||
DLLEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 dos os2),.dll,.so)
|
||||
LIBEXT=.a
|
||||
LIBPREF=lib
|
||||
|
||||
@@ -125,7 +117,7 @@ include common.cf
|
||||
# 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
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32 cyg os2),)
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
|
||||
MAIN_LIB = $(LIB_DIR)/$(LIBPREF)mainstd$(LIBEXT)
|
||||
MAIN_LIB_OBJS = $(OBJ_DIR)/mainstd$(OBJEXT)
|
||||
|
||||
@@ -158,7 +150,7 @@ endif
|
||||
|
||||
# DLLs on Windows require IMPORT lib
|
||||
# and an additional compiler phase
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32 cyg),)
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32),)
|
||||
HB_DLL_IMPLIB := $(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT))
|
||||
HB_IMPLIB_PART := -Wl,--out-implib,$(HB_DLL_IMPLIB)
|
||||
endif
|
||||
@@ -194,7 +186,7 @@ CEXEFLAGSDLL := $(CFLAGS) $(CEXEFLAGSDLL)
|
||||
|
||||
# Under architectures other than "DOS based" add -fPIC
|
||||
# to gcc compiler flags for compiling shared libraries
|
||||
ifeq ($(findstring $(HB_ARCHITECTURE),w32 cyg os2),)
|
||||
ifeq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
|
||||
ifeq ($(findstring -fPIC,$(CLIBFLAGSDLL)),)
|
||||
CLIBFLAGSDLL := -fPIC $(CLIBFLAGSDLL)
|
||||
endif
|
||||
@@ -317,7 +309,7 @@ $(COMPILER_LIB) : $(COMPILER_LIB_OBJS)
|
||||
$(VM_LIB) : $(VM_LIB_OBJS)
|
||||
$(MKLIB) $(ARFLAGS) $@ $^
|
||||
#**********************************************************
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32 cyg os2),)
|
||||
ifneq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
|
||||
$(MAIN_LIB) : $(MAIN_LIB_OBJS)
|
||||
$(MKLIB) $(ARFLAGS) $@ $^
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user