diff -r 37428ad74fc2 -r 820b22e13ff1 makefiles-garage/bintools/rcomp/Makefile --- a/makefiles-garage/bintools/rcomp/Makefile Mon Nov 16 10:04:44 2009 +0000 +++ b/makefiles-garage/bintools/rcomp/Makefile Fri Jan 08 16:16:51 2010 +0000 @@ -13,14 +13,112 @@ # Description: # This is a Linux makefile for rcomp. +# Need to make symklinks rcomp.l -> RCOMP.LEX, rcomp.y -> RCOMP.YACC ifdef EPOCROOT include $(EPOCROOT)/build/makefiles-garage/global-make-env.mk else $(error EPOCROOT must be defined as the parent directory of your epoc32 tree) endif - -todo_target = rcomp -include $(EPOCROOT)/build/makefiles-garage/todo.mk -all: todo + +cpp_inc_paths = -I inc -I src + +lib_opts = + +exe = rcomp + +CPPFLAGS = $(cpp_inc_paths) $(global_cpp_flags) +LDFLAGS = $(lib_opts) $(global_ld_flags) + +prereqs = + +ucase_lexyaccfiles = src/RCOMP.LEX src/RCOMP.YACC +lcase_lexyaccfiles = $(shell echo $(ucase_lexyaccfiles) | tr '[:upper:]' '[:lower:]') + +ucase_srcfiles = \ +src/ARRAY.CPP \ +src/ASTRING.CPP \ +src/CCODES.CPP \ +src/CTABLE.CPP \ +src/DATATYPE.CPP \ +src/ERRORHAN.CPP \ +src/FILEACC.CPP \ +src/FILELINE.CPP \ +src/INDEXTAB.CPP \ +src/LINKLIST.CPP \ +src/MEM.CPP \ +src/NAMEIDMA.CPP \ +src/NUMVAL.CPP \ +src/RCBINSTR.CPP \ +src/RCOSTRM.CPP \ +src/RCSCAN.CPP \ +src/RCSTACK.CPP \ +src/RESOURCE.CPP \ +src/STACK.CPP \ +src/STRINGAR.CPP \ +src/STRUCTST.CPP \ +src/UNICODE_COMPRESSOR.CPP \ +src/QUALIFAR.CPP + +lcase_srcfiles = $(shell echo $(ucase_srcfiles) | tr '[:upper:]' '[:lower:]') + +srcs = src/main.cpp \ +src/localise.cpp \ +src/messages.cpp \ +src/rcompl.cpp \ +src/rcomp.cpp $(lcase_srcfiles) +ifneq "$(wildcard inc/*.H.original)" "" +ucase_headers := $(basename $(wildcard inc/*.H.original)) +else +ucase_headers := $(wildcard inc/*.H) +endif + +lcase_headers = $(shell echo $(ucase_headers) | tr '[:upper:]' '[:lower:]') + +fixfiles = $(ucase_srcfiles) $(ucase_lexyaccfiles) $(ucase_headers) inc/Parser.h +fixedfiles = $(lcase_srcfiles) $(lcase_lexyaccfiles) $(lcase_headers) inc/parser.h +fixbackups = $(addsuffix .original,$(fixfiles)) + +.PHONY: all clean $(prereqs) fixes remove_fixes + +all: $(exe) + +$(srcs): fixes + +bases = $(basename $(srcs)) + +objs = $(addsuffix .o,$(bases)) + +$(prereqs): $(global_prereqs) + $(MAKE) -C $(EPOCROOT)/build $@ + +$(objs): $(prereqs) + +$(exe): $(objs) + $(CC) -o $@ $(objs) $(LDFLAGS) + +fixes:: $(fixbackups) + for uchdr in $(ucase_headers) inc/Parser.h; do \ + uchdr=$${uchdr##inc/} && \ + lchdr=`echo $$uchdr | tr '[:upper:]' '[:lower:]'` && \ + uchdr=$${uchdr/./\\.} && \ + for file in $(srcs) inc/*.h; do \ + sed -e "s|$$uchdr|$$lchdr|g" -i $$file; \ + done; \ + done && \ + sed -e 's|^typedef bool TBool;||g' -i inc/unicode_compressor.h + +$(fixbackups): + ucfile=$(basename $@) && \ + cp $$ucfile $@ && \ + lcfile=`echo $$ucfile | tr '[:upper:]' '[:lower:]'` && \ + mv $$ucfile $$lcfile + +clean: remove_fixes + rm -f $(objs) $(exe) + +remove_fixes: + rm -f $(fixedfiles) + for file in $(fixbackups); do if [ -f $$file ]; then mv -f $$file $${file%\.original}; fi; done +