aboutsummaryrefslogtreecommitdiff
path: root/Makefile.common
blob: 1621c0b6c146dd3b6a340c7bdef3b88171a365c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# $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 += common gui scumm simon sound scumm/smush

ZIPFILE := scummvm-`date '+%Y-%m-%d'`.zip

INCS	= scumm/scumm.h common/scummsys.h common/stdafx.h

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/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	+= $(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 whatsnew.txt readme.txt copying.txt \
	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).d",-MQ,"$@",-MP $(CFLAGS) $(CPPFLAGS) -c $(<) -o $*.o

-include $(DEPFILES) /dev/null

distclean: clean
	$(RM_REC) $(DEPDIRS)
	$(RM) build.rules config.h