Files
harbour-core/harbour/config/rules.cf
Viktor Szakats 21514d4707 2009-08-13 19:26 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Added HB_INSTALL_PREFIX description (this is now optional).
    + Added HB_BUILD_PKG description.
    + Added HB_BUILD_IMPLIB description.
    * log-%HB_COMPILER%.txt log names changed to log.txt.
    * Cygwin example changed to directly launch make_gnu.sh.
    ; NOTE: INSTALL still needs some updates. I'll do that while
            testing new ways of doing things.

  * config/global.cf
    + Some new information is shown in the log. (detection results)
    % exporting HB_HOST_CPU to avoid detecting it in each recursion.
    + Showing whether HB_ARCHITECTURE/HB_COMPILER values were autodetected.
    + Showing GNU Make version and targets ("clean"/"install"/"all").
    + Showing HB_BUILD_PKG, HB_BUILD_DLL settings.
    + Added logic to do some presets if HB_BUILD_PKG=yes and check
      if clean+install was specified.

  * bin/postinst.cmd
  * bin/postinst.bat
  * bin/hb-mkpkg.bat
  * bin/hb-mkimp.bat
  * bin/hb-mkdyn.bat
    + Prefixed all messages coming from our make process with '! '
    + Some new messages added to offer better entertainment for builders.

  - mpkg_gnu.bat
  * config/global.cf
  + bin/hb-mkpkg.bat
  * bin/postinst.bat
  * mpkg_win.nsi
    + Updated to work as a child function of postinst.bat instead
      of being a starter batch file. Now a package build can be
      initiated the same way as a normal one except that HB_BUILD_PKG=yes
      setting should be used additionally and 'clean install' is
      obligatory.
      In package building scenarios HB_INSTALL_PREFIX will be automatically
      set by the process, using the pkg/<arch>/<comp> tree to install the
      build into.
    * Moved most of the old logic to GNU Make level, so the batch file
      is very simple now.
    ; TOFIX: Whole removal of above dir should be solved to avoid
             leftover old files to be included in the release packages.
             Ideas are welcome.
    ; TODO: Integrate into postinst.bat.
    ; TODO: Move .nsi file to a better place.

  * bin/postinst.bat
  * config/rules.cf
    ! Fixed to respect HB_BUILD_DLL setting.

  * bin/hb-mkdyn.bat
    ! Fixed to create temp files in install area so that multiple parallel
      build runs don't badly interact with each other.
    ! Some fixes regarding spaces in dirs, although tool support is generally
      to hectic/buggy to implement that reliably. Spaces are still not recommended
      in dir.
    ! Fix for msvc.
    ! Untested fixes for watcom.
    ! Fixed leaving two temp file on disk for debuggin purposes.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added -vcshead support for Bazaar repositories.

  * config/global.cf
  * config/wce/global.cf
  * config/dos/watcom.cf
  * config/win/watcom.cf
  * config/win/global.cf
  * config/os2/watcom.cf
    - Deleted no more used HB_CDYNLIB and HB_DYNLIB logic.
2009-08-13 17:27:34 +00:00

90 lines
2.3 KiB
CFEngine3

#
# $Id$
#
# How to run yacc.
YACC := bison
YACC_FLAGS := -d $(YACC_FLAGS)
# How to run lex.
LEX := flex
LEX_FLAGS := -i -8 $(LEX_FLAGS)
ifeq ($(HB_BUILD_DEBUG),yes)
HB_CDBG := -DHB_TR_LEVEL_DEBUG
else
HB_PDBG := -l
endif
ifeq ($(HB_BUILD_UNICODE),yes)
HB_CUNICODE := -DUNICODE
endif
# How to run Harbour
HB := $(HB_HOST_BIN_DIR)/harbour$(HB_HOST_BIN_EXT)
ifeq ($(HB_GCMODE),)
HB_GCMODE := 0
endif
HB_FLAGS := -i$(HB_INC_COMPILE) -q0 -w3 -es2 -kmo $(HB_PDBG)
HB_RULE = $(HB) $? -n1 $(HB_INC_DEPEND) $(HB_FLAGS) -gc$(HB_GCMODE) $(HB_FLAGSEXTRA) $(HB_USER_PRGFLAGS)
# Use default rules if architecture/compiler specific rule is not defined
# The rule to compile a C source file.
ifeq ($(CC_RULE),)
CC_RULE = $(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=$(OBJ_EXT)) $(CC_IN) $<
ifneq ($(HB_BUILD_DLL),no)
ifeq ($(HB_DYN_COMPILE),yes)
ifneq ($(LIBNAME),)
ifneq ($(findstring $(LIBNAME),$(HB_DYN_LIBS)),)
define cc_comp_all
$(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=$(OBJ_EXT)) $(CC_IN) $<
$(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=_dyn$(OBJ_EXT)) -DHB_DYNLIB $(CC_IN) $<
endef
CC_RULE = $(cc_comp_all)
endif
endif
endif
endif
endif
# The rule to compile a C++ source file.
ifeq ($(CPP_RULE),)
CPP_RULE = $(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.cpp=$(OBJ_EXT)) $(CC_IN) $<
endif
# The rule to link an executable.
ifeq ($(LD_RULE),)
LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$(subst /,$(DIRSEP),$(BIN_DIR)/$@) $(^F) $(LDFLAGS) $(HB_USER_LDFLAGS) $(LDLIBS)
endif
# Eliminate these rules.
%.c : %.y
%.c : %.l
# Rule to generate an object file from a C source file in the parent.
%$(OBJ_EXT) : $(GRANDP)%.c
$(CC_RULE)
# Rule to generate an object file from a C source file.
%$(OBJ_EXT) : %.c
$(CC_RULE)
# Rules for CPP files
%$(OBJ_EXT) : $(GRANDP)%.cpp
$(CPP_RULE)
%$(OBJ_EXT) : %.cpp
$(CPP_RULE)
# Rule to generate an executable file from an object file.
%$(BIN_EXT) : %$(OBJ_EXT)
$(LD_RULE)
# Rule to generate a C file from a PRG file.
%.c : $(GRANDP)%.prg
$(HB_RULE)