Files
harbour-core/harbour/config/c.cf
Przemyslaw Czerpak d83d51d6b9 2009-01-29 22:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/config/rules.cf
  * harbour/config/dos/bcc16.cf
    ! fixed wrong automatic macros $? was used instead of $<

  * harbour/config/dir.cf
    * optional new DIR_RULE setting for easier testing

  * harbour/config/c.cf
    + added support for setting dependencies for files which needs
      grammar header files generated by bison (YACC_DEPEND)

  * harbour/source/macro/Makefile
    * marked macrolex.c as YACC_DEPEND dependent

  * harbour/source/compiler/Makefile
    * marked complex.c as YACC_DEPEND dependent
2009-01-29 21:47:10 +00:00

49 lines
1.1 KiB
CFEngine3

#
# $Id$
#
C_OBJS = $(C_SOURCES:.c=$(OBJ_EXT)) $(CPP_SOURCES:.cpp=$(OBJ_EXT))
C_MAIN_OBJ = $(C_MAIN:.c=$(OBJ_EXT))
ifdef YACC_SOURCE
YACC_BASE = $(YACC_SOURCE:.y=)
YACC_C = $(YACC_BASE)y.c
YACC_H_TMP = $(YACC_C:.c=.h)
YACC_H = y_tab.h
YACC_OUTPUT = $(YACC_C:.c=.out)
YACC_OBJ = $(YACC_C:.c=$(OBJ_EXT))
YACC_HB_H := $(foreach h, $(YACC_HEADERS), $(HB_INC_COMPILE)/$(h))
ifneq ($(YACC_DEPEND),)
$(foreach f, $(YACC_DEPEND), $(f:.c=$(OBJ_EXT))) : $(YACC_C)
endif
endif
ifdef LEX_SOURCE
LEX_BASE = $(LEX_SOURCE:.l=)
LEX_C = $(LEX_BASE)l.c
LEX_OBJ = $(LEX_C:.c=$(OBJ_EXT))
LEX_HB_H := $(foreach h, $(LEX_HEADERS), $(HB_INC_COMPILE)/$(h))
endif
ALL_C_OBJS = $(YACC_OBJ) $(LEX_OBJ) $(C_OBJS) $(C_MAIN_OBJ)
$(YACC_OBJ) : $(YACC_C)
ifeq ($(HB_REBUILD_PARSER),yes)
$(YACC_C) : ../../$(YACC_SOURCE) $(YACC_HB_H)
$(YACC) $(YACC_FLAGS) -o$@ $<
else
ifeq ($(DIRSEP),)
DIRSEP = /
endif
%y.c : ../../%.yyc
$(CP) $(subst /,$(DIRSEP),$<) $@
$(CP) $(subst /,$(DIRSEP),$(<:.yyc=.yyh)) $(@:.c=.h)
endif
$(LEX_OBJ) : $(LEX_C)
$(LEX_C) : ../../$(LEX_SOURCE) $(LEX_HB_H)
$(LEX) $(LEX_FLAGS) -o$@ $<