# $Header$ # This file is used by Makefile, Makefile.irix, Makefile.macosx and declares # common rules, a list of common object files etc. # List of all sub modules MODULES += backends/fs/posix common gui scumm simon sound scumm/smush ZIPFILE := scummvm-`date '+%Y-%m-%d'`.zip INCS = scumm/scumm.h common/scummsys.h common/stdafx.h BACKEND_OBJS = \ backends/fs/posix/posix-fs.o COMMON_OBJS = \ common/config-file.o \ common/engine.o \ common/file.o \ common/gameDetector.o \ common/main.o \ common/scaler.o \ common/str.o \ common/timer.o \ common/util.o GUI_OBJS = \ gui/browser.o \ gui/dialog.o \ gui/launcher.o \ gui/ListWidget.o \ gui/message.o \ gui/newgui.o \ gui/ScrollBarWidget.o \ gui/widget.o \ SCUMM_OBJS = \ scumm/actor.o \ scumm/akos.o \ scumm/boxes.o \ scumm/bundle.o \ scumm/costume.o \ scumm/debug.o \ scumm/debugrl.o \ scumm/dialogs.o \ scumm/gfx.o \ scumm/imuse.o \ scumm/object.o \ scumm/resource.o \ scumm/resource_v2.o \ scumm/resource_v3.o \ scumm/resource_v4.o \ scumm/saveload.o \ scumm/script.o \ scumm/script_v1.o \ scumm/script_v2.o \ scumm/scummvm.o \ scumm/sound.o \ scumm/string.o \ scumm/vars.o \ scumm/verbs.o \ SIMON_OBJS = \ simon/debug.o \ simon/items.o \ simon/midi.o \ simon/res.o \ simon/simon.o \ simon/verb.o \ simon/vga.o SMUSH_OBJS = \ scumm/smush/blitter.o \ scumm/smush/brenderer.o \ scumm/smush/chunk.o \ scumm/smush/codec1.o \ scumm/smush/codec37.o \ scumm/smush/codec44.o \ scumm/smush/codec47.o \ scumm/smush/color.o \ scumm/smush/frenderer.o \ scumm/smush/imuse_channel.o \ scumm/smush/player.o \ scumm/smush/saud_channel.o \ scumm/smush/scumm_renderer.o SOUND_OBJS = sound/fmopl.o sound/mididrv.o sound/mixer.o OBJS += $(BACKEND_OBJS) $(COMMON_OBJS) $(GUI_OBJS) scumm/libscumm.a simon/libsimon.a $(SOUND_OBJS) DISTFILES=$(OBJS:.o=.cpp) Makefile scumm.h scummsys.h stdafx.h stdafx.cpp \ debugrl.h NEWS README COPYING \ scummvm.dsp scummvm.dsw sound/fmopl.h gui.h sound.h all: scummvm$(EXEEXT) scummvm$(EXEEXT): $(OBJS) $(CXX) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) scumm/libscumm.a: $(SCUMM_OBJS) $(SMUSH_OBJS) $(AR) $@ $+ $(RANLIB) $@ simon/libsimon.a: $(SIMON_OBJS) $(AR) $@ $+ $(RANLIB) $@ clean: $(RM) $(OBJS) $(SCUMM_OBJS) $(SIMON_OBJS) $(SMUSH_OBJS) scummvm$(EXEEXT) .PHONY: all clean dist distclean # Default (dumb) compile & dependcy rules #.cpp.o: # $(CXX) $(CFLAGS) $(CPPFLAGS) -c $(<) -o $*.o #$(OBJS): $(INCS) # If you use GCC, disable the above and enable this for intelligent # dependency tracking. DEPDIR := .deps DEPDIRS = $(patsubst %,%/$(DEPDIR),$(MODULES)) DEPFILES = $(wildcard $(patsubst %,%/$(DEPDIR)/*.d,$(MODULES))) .cpp.o: $(MKDIR) $(*D)/$(DEPDIR) $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2" $(CFLAGS) $(CPPFLAGS) -c $(<) -o $*.o $(ECHO) "$(*D)/" > $(*D)/$(DEPDIR)/$(*F).d $(CAT) "$(*D)/$(DEPDIR)/$(*F).d2" >> "$(*D)/$(DEPDIR)/$(*F).d" $(RM) "$(*D)/$(DEPDIR)/$(*F).d2" -include $(DEPFILES) /dev/null distclean: clean $(RM_REC) $(DEPDIRS) $(RM) build.rules config.h