# $Header$ # This file is used by Makefile and Makefile.mingw and declares common build rules, # a list of common object files etc. # The defaul build target: just build the scummvm executable all: scummvm$(EXEEXT) # Files that are to be included in the archive built by "make dist" DISTFILES := \ Makefile Makefile.common Makefile.mingw \ NEWS README COPYING scummvm.6 Info.plist \ scumm.dsp scummvm.dsp scummvm.dsw scummvm.icns scummvm.ico \ scummvm.proj scummvm.rc scummvm.spec scummvm.xpm simon.dsp # The dist file name ZIPFILE := scummvm-`date '+%Y-%m-%d'`.zip # The name for the directory used for depenency tracking DEPDIR := .deps # List of all sub modules (note: order is important, don't mess with it) # TODO - the nested ones (scumm/smush, backends/...) should be handled from the # module.mk of their parents. In fact the only reason they are listed here is to ensure the # DEPDIRS directive works correctly. MODULES += \ scumm common simon gui backends sound \ scumm/smush backends/fs/posix backends/fs/morphos backends/fs/windows backends/midi # Include the build instructions for all modules -include $(patsubst %,%/module.mk,$(MODULES)) scummvm$(EXEEXT): $(OBJS) $(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) clean: $(RM) $(OBJS) scummvm$(EXEEXT) .PHONY: all clean dist distclean # Default (dumb) compile & dependcy rules #INCS = scumm/scumm.h common/scummsys.h common/stdafx.h #.cpp.o: # $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o #$(OBJS): $(INCS) # If you use GCC, disable the above and enable this for intelligent # dependency tracking. DEPDIRS = $(patsubst %,%/$(DEPDIR),$(MODULES)) DEPFILES = $(wildcard $(patsubst %,%/*.d,$(DEPDIRS))) .cpp.o: $(MKDIR) $(*D)/$(DEPDIR) $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2" $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o $(ECHO) "$(*D)/" > $(*D)/$(DEPDIR)/$(*F).d $(CAT) "$(*D)/$(DEPDIR)/$(*F).d2" >> "$(*D)/$(DEPDIR)/$(*F).d" $(RM) "$(*D)/$(DEPDIR)/$(*F).d2" # If you even have GCC 3.x, you can use this build rule, which is safer; the above # rule can get you into a bad state if you Ctrl-C it in the wrong moment. #.cpp.o: # $(MKDIR) $(*D)/$(DEPDIR) # $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o -include $(DEPFILES) /dev/null distclean: clean $(RM_REC) $(DEPDIRS) $(RM) build.rules config.h