## FreeBASIC compiler ##################################### FBC := fbc ########################################################################################### ## flags ################################################################################# llflags += -d ll_main=-1 llflags += -maxerr inf ## REMOVE THIS IF YOU HAVE A COMPILER VERSION LESS THAN .17 llflags += -lang deprecated ########################################################### ifdef full ll_audio = 1 endif ifdef linux llflags += -target linux endif ifdef dos llflags += -target dos -r endif ifdef fulldebug debug = 1 exx_err = 1 -d LL_OBJECTLOADPROGRESS=-1 -d LL_LOGMAPLOADPROGRESS=-1 -d LL_LOGROOMCHANGE=-1 -d LL_LOGRoomEnemySetup=-1 endif ifdef err llflags += -e endif ifdef ex_err llflags += -ex endif ifdef exx_err llflags += -exx endif ifdef debug llflags += -g endif ifdef trace llflags += -d __trace__=-1 endif ifdef profile llflags += -profile endif ifdef ll_audio llflags += -d ll_audio=-1 endif ifndef console ifndef debug ifndef exx_err ifndef ex_err ifndef err ifndef linux ifndef dos llflags += -s gui endif endif endif endif endif endif endif ########################################################################################### ## headers... ########################################################################################### ll_headers += inc/audio.bi ll_headers += inc/constants.bi ll_headers += inc/engine.bi ll_headers += inc/gfx.bi ll_headers += inc/ll.bi ll_headers += inc/lynn.bi ll_headers += inc/macros.bi ll_headers += inc/map.bi ll_headers += inc/object.bi ll_headers += inc/sequence.bi ifdef ll_audio ll_headers += inc/bass_ll.bi endif all_headers += $(ll_headers) ########################################################################################### ## set up targets ########################################################################################### ifdef linux target_exe := ll resource_file := else target_exe := ll.exe ifndef dos resource_file := ll.rc endif endif obj_path := obj ll_sources += engine--audio.bas ll_sources += engine--controls.bas ll_sources += engine--debug.bas ll_sources += engine--gfx.bas ll_sources += engine--gfx--box.bas ll_sources += engine--gfx--object.bas ll_sources += engine--ll.bas ll_sources += engine--lynn.bas ll_sources += engine--obj.bas ll_sources += engine--obj--load.bas ll_sources += engine--seq.bas ll_sources += object--boss.bas ll_sources += object--etc.bas ll_sources += object--gfx.bas ll_sources += object--gfx--animation.bas ll_sources += object--gfx--palette.bas ll_sources += object--modification.bas ll_sources += object--move.bas ll_sources += object--sound.bas ll_sources += object--states.bas ll_sources += object--time.bas ll_sources += store--image.bas ll_sources += store--object.bas ll_sources += struct--box.bas ll_sources += struct--engine.bas ll_sources += struct--image.bas ll_sources += struct--lynn.bas ll_sources += struct--map.bas ll_sources += struct--object.bas ll_sources += struct--seq.bas ll_objects := $(patsubst %.bas,$(obj_path)/%.o,$(ll_sources)) ######################################################################################### lib_sources += err.bas lib_sources += event.bas lib_sources += global.bas lib_sources += list_mem.bas lib_sources += list_file.bas lib_sources += list_integer.bas lib_sources += list_string.bas lib_sources += list_anyptr.bas lib_sources += vector.bas lib_sources += util.bas lib_sources += vfile.bas lib_sources += xml.bas lib_sources += zfb.bas lib_sources += lzw.bas lib_objects := $(patsubst %.bas,$(obj_path)/%.o,$(lib_sources)) ########################################################################################### ## compile ########################################################################################### $(target_exe): src/ll.bas $(ll_objects) $(lib_objects) $(ll_headers) $(FBC) $(llflags) -l z src/ll.bas $(lib_objects) $(ll_objects) -x $(target_exe) etc/$(resource_file) $(obj_path)/err.o : ../err/err.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/event.o : ../event/event.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/global.o : ../global/global.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/list_mem.o : ../list/list_mem.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/list_file.o : ../list/list_file.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/list_integer.o : ../list/list_integer.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/list_string.o : ../list/list_string.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/list_anyptr.o : ../list/list_anyptr.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/vector.o : ../math/vector.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/util.o : ../util/util.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/vfile.o : ../vfile/vfile.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/xml.o : ../xml/xml.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/lzw.o : ../lzw/lzw.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/zfb.o : ../zlib/zfb.bas $(FBC) $(llflags) -c $< -o $@ $(obj_path)/%.o : src/%.bas $(ll_headers) $(FBC) $(llflags) -c $< -o $@ ########################################################################################### ## Clean up ########################################################################################### .PHONY : mostlyclean mostlyclean: rm -f $(ll_objects) $(patsubst %.o,%.asm,$(ll_objects)) $(lib_objects) $(patsubst %.o,%.asm,$(lib_objects)) .PHONY : clean clean: mostlyclean rm -f $(target_exe)