rendered paste body## 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)