86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Auto-generated file -- DO NOT EDIT
 | |
| 
 | |
| STRGEN       = !!STRGEN!!
 | |
| ENDIAN_CHECK = !!ENDIAN_CHECK!!
 | |
| SRC_DIR      = !!SRC_DIR!!
 | |
| LANG_DIR     = !!LANG_DIR!!
 | |
| BIN_DIR      = !!BIN_DIR!!
 | |
| LANGS_SRC    = $(shell ls $(LANG_DIR)/*.txt)
 | |
| LANGS        = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
 | |
| CXX_BUILD    = !!CXX_BUILD!!
 | |
| CFLAGS_BUILD = !!CFLAGS_BUILD!!
 | |
| STRGEN_FLAGS = !!STRGEN_FLAGS!!
 | |
| STAGE        = !!STAGE!!
 | |
| LANG_SUPPRESS= !!LANG_SUPPRESS!!
 | |
| LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
 | |
| 
 | |
| ifeq ($(LANG_SUPPRESS), yes)
 | |
| LANG_ERRORS = >/dev/null 2>&1
 | |
| endif
 | |
| 
 | |
| # Make sure endian_host.h is reasable as if it was in the src/ dir
 | |
| CFLAGS_BUILD += -I $(LANG_OBJS_DIR)
 | |
| 
 | |
| ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK)
 | |
| 
 | |
| # Check if we want to show what we are doing
 | |
| ifdef VERBOSE
 | |
| 	Q =
 | |
| 	E = @true
 | |
| else
 | |
| 	Q = @
 | |
| 	E = @echo
 | |
| endif
 | |
| 
 | |
| RES := $(shell mkdir -p $(BIN_DIR)/lang )
 | |
| 
 | |
| all: table/strings.h $(LANGS)
 | |
| 
 | |
| strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h
 | |
| 	$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
 | |
| 	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
 | |
| 
 | |
| string.o: $(SRC_DIR)/string.cpp endian_host.h
 | |
| 	$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
 | |
| 	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
 | |
| 
 | |
| lang/english.txt: $(LANG_DIR)/english.txt
 | |
| 	$(Q)mkdir -p lang
 | |
| 	$(Q)cp $(LANG_DIR)/english.txt lang/english.txt
 | |
| 
 | |
| $(STRGEN): string.o strgen.o
 | |
| 	$(E) '$(STAGE) Compiling and Linking $@'
 | |
| 	$(Q)$(CXX_BUILD) string.o strgen.o -o $@
 | |
| 
 | |
| table/strings.h: lang/english.txt $(STRGEN)
 | |
| 	$(E) '$(STAGE) Generating $@'
 | |
| 	@mkdir -p table
 | |
| 	$(Q)./$(STRGEN) -s $(LANG_DIR) -d table
 | |
| 
 | |
| $(LANGS): %.lng: $(LANG_DIR)/%.txt $(STRGEN) lang/english.txt
 | |
| 	$(E) '$(STAGE) Compiling language $(*F)'
 | |
| 	$(Q)./$(STRGEN) $(STRGEN_FLAGS) -s $(LANG_DIR) -d $(LANG_OBJS_DIR) $< $(LANG_ERRORS) && cp $@ $(BIN_DIR)/lang || true # Do not fail all languages when one fails
 | |
| 
 | |
| # The targets to compile the endian-code
 | |
| 
 | |
| endian_host.h: $(ENDIAN_CHECK)
 | |
| 	$(E) '$(STAGE) Testing endianness for host'
 | |
| 	$(Q)./$(ENDIAN_CHECK) > $@
 | |
| 
 | |
| $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
 | |
| 	$(E) '$(STAGE) Compiling and Linking $@'
 | |
| 	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
 | |
| 
 | |
| depend:
 | |
| 
 | |
| clean:
 | |
| 	$(E) '$(STAGE) Cleaning up language files'
 | |
| 	$(Q)rm -f strgen.o string.o table/strings.h $(STRGEN) $(LANGS) $(LANGS:%=$(BIN_DIR)/lang/%) lang/english.* $(ENDIAN_TARGETS)
 | |
| 
 | |
| mrproper: clean
 | |
| 
 | |
| %.lng:
 | |
| 	@echo '$(STAGE) No such language: $(@:%.lng=%)'
 | |
| 
 | |
| .PHONY: all mrproper depend clean
 | 
