git » fp-git.git » master » tree

[master] / FP / src / makefile.devcpp

#Makefile done by H�lder Maur�cio Gomes Ferreira Filho (Speeder)
#I assume that you have already set the %path% variable to the right places.
#Example %path% (the one that I used to create this file).
# set path=%path%;c:\dev-cpp\bin;c:\awk\bin

############
# Programs #
############

CC       = @gcc.exe
INFO       = @echo
LINKER     = @gcc.exe
MAKEDIR    = @mkdir
AWK        = @gawk

#####################
# Operating Systems #
#####################

LINUX = -DNOLINUX
SRC2  = getopt.o getopt1.o SDL_win32_main.o
OS    = Win32

####################
# Compiler options #
####################

#Libraries: include path and linked libs
INCLUDE       = -Iinclude -Iports\include -Iports\include\sdl
LIBS	  = SDL.lib

#Defines
DEFINES       = -DOS=\"$(OS)\" $(LINUX) -DOUTPUT_FULLSCREEN

#Release type
# RELEASE may be:
#  -g -Wall -ansi -pedantic	for debug
#  -O2			     for release
# LINKERRELEASE may be:
#  -s			      for release
RELEASE       =  
LINKERRELEASE = -s

#Binary code files
OBJFILES      = main.o kernel.o resources.o dat.o disk.o compress.o \
		output.o maps.o config.o room.o titles.o \
		input.o kid.o states.o tiles.o walls.o anims.o object.o\
		$(SRC2)
EXEFILE       = bin\freeprince.exe

GENERATEDRESHEADERS = include/res_conf_parts.h include/res_conf_files.h\
                      include/res_conf_types.h include/res_conf_mods.h\
                      include/res_conf_resources.h
GENERATEDSTAHEADERS = include/states_conf_static.h \
                      include/states_conf_flags.h
#include/states_conf_properties.h
GENERATEDTILHEADERS = include/tiles_conf_types.h include/tiles_conf_groups.h

GENERATEDOTHHEADERS = include/walls_conf.h include/anims_conf.h include/text_conf.h\
                      include/room_conf.h

#Use this to temporary remove an option
OPTIONS       = $(INCLUDE) $(DEFINES) $(RELEASE)
LINKEROPTIONS = $(LINKERRELEASE)

#############
# main file #
#############

$(EXEFILE): $(OBJFILES)
	$(INFO) Linking files...
	@rem if not exist bin mkdir bin
	$(LINKER) $(OBJFILES) $(LIBS) $(LINKEROPTIONS) -o $(EXEFILE)
	$(INFO) Program successfully compiled


###################
# command options #
###################

clean:
	$(INFO) Erasing temporary object files...
	del *.o

build: clean $(EXEFILE)

all: index build

headers: $(GENERATEDRESHEADERS) $(GENERATEDSTAHEADERS) $(GENERATEDTILHEADERS)\
         $(GENERATEDOTHHEADERS)

install: download build

################
# Source files #
################

main.o: main.c include\kernel.h include\main.h
	$(INFO) Compiling command line parser...
	$(CC) $(OPTIONS) -c main.c

resources.o: res\resources.c include\resources.h include\compress.h \
	     include\dat.h include\disk.h include\res_conf.h
	$(INFO) Compiling main resource manager module...
	$(CC) $(OPTIONS) -c res\resources.c

disk.o: res\disk.c include\memory.h include\disk.h include\resources.h include\res_conf.h
	$(INFO) Compiling resource disk access library...
	$(CC) $(OPTIONS) -c res\disk.c

dat.o: res\dat.c include\disk.h include\dat.h
	$(INFO) Compiling resource dat editing library...
	$(CC) $(OPTIONS) -c res\dat.c

kernel.o: ker\kernel.c include\kernel.h include\resources.h include\res_conf.h include\output.h
	$(INFO) Compiling main kernel...
	$(CC) $(OPTIONS) -c ker\kernel.c

room.o: ker\room.c include\room.h include\resources.h include\res_conf.h
	$(INFO) Compiling kernel room object...
	$(CC) $(OPTIONS) -c ker\room.c

kid.o: ker\kid.c include\kid.h include\resources.h include\res_conf.h
	$(INFO) Compiling kernel kid object...
	$(CC) $(OPTIONS) -c ker\kid.c

titles.o: ker\titles.c include\resources.h include\res_conf.h
	$(INFO) Compiling kernel titles module...
	$(CC) $(OPTIONS) -c ker\titles.c

compress.o: res\compress.c include\compress.h include\memory.h \
	    include\disk.h
	$(INFO) Compiling resource compression module...
	$(CC) $(OPTIONS) -c res\compress.c

maps.o: res\maps.c include\maps.h
	$(INFO) Compiling resource map handling module...
	$(CC) $(OPTIONS) -c res\maps.c

output.o: out\output.c include\resources.h include\res_conf.h
	$(INFO) Compiling main output module...
	$(CC) $(OPTIONS) -c out\output.c

states.o: ker/states.c include/states.h include/states_conf.h\
	  include/resources.h include/res_conf.h include/types.h\
	include/tiles.h include/tiles_conf.h
	$(INFO) Compiling kernel states module...
	$(CC) $(OPTIONS) -c ker\states.c 

tiles.o: res/tiles.c include/tiles.h include/tiles_conf.h
	$(INFO) Compiling resource tile classification module...
	$(CC) $(OPTIONS) -c res\tiles.c

input.o: out\input.c include\input.h
	$(INFO) Compiling main input module...
	$(CC) $(OPTIONS) -c out\input.c

config.o: res\config.c include\resources.h include\res_conf.h
	$(INFO) Compiling resource configuration module...
	$(CC) $(OPTIONS) -c res\config.c
walls.o: res\walls.c include\walls.h include\walls_conf.h
	$(INFO) Compiling wall algorithm module...
	$(CC) $(OPTIONS) -c res\walls.c

anims.o: res\anims.c include\anims.h include\anims_conf.h
	$(INFO) Compiling animation loader module...
	$(CC) $(OPTIONS) -c res\anims.c
	
object.o: ker\object.c include\object.h include\resources.h include\res_conf.h\
	include\states.h include\res_conf.h\
	include\types.h include\tiles.h include\tiles_conf.h include\output.h\
	include\kid.h
	$(INFO) Compiling kernel kid object support...
	$(CC) $(OPTIONS) -c ker\object.c



#AWK scripts: header generation
include/res_conf.h: $(GENERATEDRESHEADERS)

include/res_conf_parts.h: conf/parts.conf conf/awk/res_conf_parts.awk
	$(INFO) Creating resource id parts configuration file...
	$(AWK) -f conf/awk/res_conf_parts.awk conf/parts.conf>include/res_conf_parts.h

include/res_conf_files.h: conf/files.conf conf/awk/res_conf_files.awk
	$(INFO) Creating resource dat files list configuration file...
	$(AWK) -f conf/awk/res_conf_files.awk conf/files.conf>include/res_conf_files.h

include/res_conf_types.h: conf/types.conf conf/awk/res_conf_types.awk
	$(INFO) Creating resource types configuration file...
	$(AWK) -f conf/awk/res_conf_types.awk conf/types.conf>include/res_conf_types.h

include/res_conf_mods.h: conf/mods.conf conf/awk/res_conf_mods.awk
	$(INFO) Creating resource modifiers configuration file...
	$(AWK) -f conf/awk/res_conf_mods.awk conf/mods.conf>include/res_conf_mods.h

include/res_conf_resources.h: conf/resources.conf conf/awk/res_conf_resources.awk
	$(INFO) Creating resource list configuration file...
	$(AWK) -f conf/awk/res_conf_resources.awk conf/resources.conf>include/res_conf_resources.h

include/states_conf.h: $(GENERATEDSTAHEADERS)

include/states_conf_static.h: conf/awk/states_conf_static.awk conf/states/*.conf
	$(INFO) Creating states list configuration file...
	$(AWK) -f conf/awk/states_conf_static.awk conf/states/*.conf>include/states_conf_static.h

#include/states_conf_properties.h: conf/statesproperties.conf conf/awk/states_conf_properties.awk
#	$(INFO) Creating states condition properties configuration file...
#	$(AWK) -f conf/awk/states_conf_properties.awk conf/statesproperties.conf>include/states_conf_properties.h

include/states_conf_flags.h: conf/flags.conf conf/awk/states_conf_flags.awk
	$(INFO) Creating states frame flags configuration file...
	$(AWK) -f conf/awk/states_conf_flags.awk conf/flags.conf>include/states_conf_flags.h

include/tiles_conf.h: $(GENERATEDTILHEADERS)

include/tiles_conf_types.h: conf/tiles.conf conf/awk/tiles_conf_types.awk
	$(INFO) Creating tile list configuration file...
	$(AWK) -f conf/awk/tiles_conf_types.awk conf/tiles.conf>include/tiles_conf_types.h

include/tiles_conf_groups.h: conf/tiles.conf conf/awk/tiles_conf_groups.awk
	$(INFO) Creating tile groups configuration file...
	$(AWK) -f conf/awk/tiles_conf_groups.awk conf/tiles.conf>include/tiles_conf_groups.h

include/walls_conf.h: conf/walls.conf conf/awk/walls_conf.awk
	$(INFO) Creating wall algorithm randomization file...
	$(AWK) -f conf/awk/walls_conf.awk conf/walls.conf>include/walls_conf.h

include/anims_conf.h: conf/anims.conf conf/awk/anims_conf.awk
	$(INFO) Binding animation indexes to the source...
	$(AWK) -f conf/awk/anims_conf.awk conf/anims.conf>include/anims_conf.h

include/text_conf.h: conf/alphabet.conf conf/awk/text_conf.awk
	$(INFO) Generating font alphabet...
	$(AWK) -f conf/awk/text_conf.awk conf/alphabet.conf>include/text_conf.h

include/room_conf.h: conf/room.conf conf/awk/room_conf.awk
	$(INFO) Generating room drawing code...
	$(AWK) -f conf/awk/room_conf.awk conf/room.conf>include/room_conf.h





getopt.o: ports\getopt.c
	$(INFO) Porting the Unix-like getopt function (first part)...
	$(CC) $(OPTIONS) -c ports\getopt.c

getopt1.o: ports\getopt1.c
	$(INFO) Porting the Unix-like getopt function (second part)...
	$(CC) $(OPTIONS) -c ports\getopt1.c

SDL_win32_main.o: ports\SDL_win32_main.c
	$(INFO) Porting the SDL main function...
	$(CC) $(OPTIONS) -c ports\SDL_win32_main.c