Files
harbour-core/harbour/config/rules.cf
Viktor Szakats 31b813cd7e 2009-03-20 17:33 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* tests/bnchmark
  + tests/bnchmark/bnch_win.bat
    + Added speedtst comparison tool, featuring:
      - CPU + physical memory info dump from WMI
      - Tasklist before and after test runs
      - Harbour /build info included in output
      - Complete dump of commands executed, hbmk2 output
      - Dir listing of tested .exes
      - All tests repeated three times by default (configurable)
      - 8 slots maximum to compare different speedtst scenarios
      - By default it will run -st vs. -mt tests.
    ; Please read the comments in the file for usage instructions.
      Here's an example for parameter setup:
      --
      set PATH=C:\devl\MinGW-432\bin;%PATH%
      set HB_BENCH_RUNS=3
      set HB_RUN_FLAGS=--exclude=030
      set HB_CMP_FLAGS_1=-gc2
      set HB_CMP_FLAGS_2=-gc3
      call bnch_win.bat > results.txt 2>&1
      --

  * config/rules.cf
    + Restored -ko flag. Thanks Mindaugas for analysing test result.

  * contrib/hbodbc/todbc.prg
  * contrib/hbodbc/odbc.c
    * Formatting + minor cleanups.
2009-03-20 16:38:16 +00:00

99 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
#
# How to run Harbour.
#
HB := $(notdir $(HB_BIN_COMPILE))
ifneq ($(HB),)
# there is no slash at the end
HB := $(HB_BIN_COMPILE)/
endif
HB := $(HB)harbour$(EXE_EXT)
ifeq ($(HB_GCMODE),)
HB_GCMODE=3
endif
HB_FLAGS := -i$(HB_INC_COMPILE) -q0 -w3 -es2 -kmo $(HB_PDBG)
HB_RULE = $(HB) $? -n1 $(HB_FLAGS) -gc$(HB_GCMODE) $(HB_USER_PRGFLAGS)
# The rule to link an executable.
ifeq ($(LD_RULE),)
# Use default rule if architecture/compiler specific rule is not defined
LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$@ $(^F) $(LDFLAGS) $(HB_USER_LDFLAGS) $(LINKLIBS)
endif
# The rule to compile a C source file.
ifeq ($(CC_RULE),)
# Use default rule if architecture/compiler specific rule is not defined
CC_RULE = $(CC) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CDYNLIB) $(CC_IN) $< $(CC_OUT)$(<F:.c=$(OBJ_EXT))
endif
# The rule to compile a C++ source file.
ifeq ($(CPP_RULE),)
# Use default rule if architecture/compiler specific rule is not defined
CPP_RULE = $(CC) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CDYNLIB) $(CC_IN) $< $(CC_OUT)$(<F:.cpp=$(OBJ_EXT))
endif
# Eliminate these rules.
%.c : %.y
%.c : %.l
# Location of source C files
# Some DOS compilers doesn't like '/' in filenames - however the MAKE system
# requires '/' in filenames - this trick allows to solve this conflict
SOURCE_DIR := $($(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP)
ifeq ($(SOURCE_DIR),)
SOURCE_DIR = $(GRANDP)
endif
# Rule to generate an object file from a C source file in the parent.
%$(OBJ_EXT) : $(SOURCE_DIR)%.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) : $(SOURCE_DIR)%.cpp
$(CPP_RULE)
%$(OBJ_EXT) : %.cpp
$(CPP_RULE)
# Rule to generate an executable file from an object file.
%$(EXE_EXT) : %$(OBJ_EXT)
$(LD_RULE)
# Rule to generate a C file from a PRG file.
%.c : $(GRANDP)%.prg
$(HB_RULE)
ifeq ($(SHLVL),) # COMMAND.COM
# Do nothing. the $(HB_ARCHITECTURE)/global.cf will handle clean up.
else
# Generic rule to clean up.
clean::
-$(RM) *.bak *.obj core *.core *~ *.o *.ppo *.err
endif