rnd-20000917-1-src
[rocksndiamonds.git] / src / Makefile
1 #=============================================================================#
2 # Makefile for Rocks'n'Diamonds 1.4.0                                         #
3 # (c) 1995-1999 Holger Schemel, aeglos@valinor.owl.de                         #
4 #=============================================================================#
5
6 ifndef PLATFORM                 # platform not specified -- try auto detection
7 ifdef COMSPEC
8 PLATFORM = dos
9 else
10 PLATFORM = unix
11 endif
12 endif
13
14 ifdef X11_PATH                  # path to X11 specified by top level Makefile
15 XINC_PATH = $(X11_PATH)/include
16 XLIB_PATH = $(X11_PATH)/lib
17 X11_INCL = -I$(XINC_PATH)
18 X11_LIBS = -L$(XLIB_PATH)
19 endif
20
21
22 ifeq ($(PLATFORM),dos)          # DOS / Windows
23
24 RM = del
25 PROGNAME = ../rocks.exe
26 LIBS = -s -lm -lalleg
27
28 else                            # Unix
29
30 RM = rm -f
31 PROGNAME = ../rocksndiamonds
32
33 ifeq ($(PLATFORM),solaris)
34 EXTRA_LIBS = -lnsl -lsocket -R$(XLIB_PATH)
35 endif
36
37 ifeq ($(PLATFORM),windows)
38 PROGNAME = ../rocksndiamonds.exe
39 TARGET = sdl
40 else
41 PROFILING = -pg
42 endif
43
44 ifeq ($(TARGET),sdl)
45 USE_SDL = true
46 else
47 USE_SDL = false
48 endif
49
50 ifeq ($(USE_SDL_OLD_LIBS),true)
51 SDL_EXTRA_LIBS = -lIMG -lmixer
52 else
53 SDL_EXTRA_LIBS = -lSDL_image -lSDL_mixer
54 endif
55
56 SDL_CFLAGS := -DUSE_SDL_LIBRARY $(shell sdl-config --cflags)
57 SDL_LDFLAGS := $(SDL_EXTRA_LIBS) $(shell sdl-config --libs)
58
59 X11_CFLAGS = $(X11_INCL)
60 X11_LDFLAGS = $(X11_LIBS) -lX11
61
62 ifeq ($(USE_SDL),true)
63 SYS_CFLAGS  = $(SDL_CFLAGS)
64 SYS_LDFLAGS = $(SDL_LDFLAGS)
65 else
66 SYS_CFLAGS  = $(X11_CFLAGS)
67 SYS_LDFLAGS = $(X11_LDFLAGS)
68 endif
69
70 INCL = $(SYS_CFLAGS)
71 LIBS = $(SYS_LDFLAGS) $(EXTRA_LIBS) -lm
72
73 endif                           # (PLATFORM != dos)
74
75
76 ifdef RO_GAME_DIR               # path to read-only game data specified
77 CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\""
78 endif
79
80 ifdef RW_GAME_DIR               # path to writable game data specified
81 CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\""
82 endif
83
84 ifdef SCORE_ENTRIES             # number of score entries per player specified
85 CONFIG_SCORE_ENTRIES = -D$(SCORE_ENTRIES)
86 endif
87
88 CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
89
90
91 CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(SOUNDS) $(JOYSTICK)
92 DEBUG = -DDEBUG -g
93
94 OPTIONS = $(DEBUG) -Wall                        # only for debugging purposes
95 # OPTIONS = $(DEBUG) -O3 -Wall                  # only for debugging purposes
96 # OPTIONS = $(DEBUG) -Wall -ansi -pedantic      # only for debugging purposes
97 # OPTIONS = -O3 -Wall -ansi -pedantic
98 # OPTIONS = -O3 -Wall
99 # OPTIONS = -O3
100
101 # SYSTEM = -DSYSV -Ae                           # may be needed for HP-UX
102
103 CFLAGS = $(OPTIONS) $(SYSTEM) $(SYS_CFLAGS) $(CONFIG)
104
105 SRCS =  main.c          \
106         init.c          \
107         events.c        \
108         tools.c         \
109         screens.c       \
110         misc.c          \
111         game.c          \
112         editor.c        \
113         buttons.c       \
114         files.c         \
115         tape.c          \
116         sound.c         \
117         joystick.c      \
118         cartoons.c      \
119         random.c        \
120         pcx.c           \
121         image.c         \
122         network.c       \
123         netserv.c       \
124         msdos.c         \
125         system.c        \
126         x11.c           \
127         sdl.c
128
129 OBJS =  main.o          \
130         init.o          \
131         events.o        \
132         tools.o         \
133         screens.o       \
134         misc.o          \
135         game.o          \
136         editor.o        \
137         buttons.o       \
138         files.o         \
139         tape.o          \
140         sound.o         \
141         joystick.o      \
142         cartoons.o      \
143         random.o        \
144         pcx.o           \
145         image.o         \
146         network.o       \
147         netserv.o       \
148         msdos.o         \
149         system.o        \
150         x11.o           \
151         sdl.o
152
153 all:    $(PROGNAME)
154
155 $(PROGNAME):    $(OBJS)
156         $(CC) $(PROFILING) $(OBJS) $(LIBS) -o $(PROGNAME)
157
158 .c.o:
159         $(CC) $(PROFILING) $(CFLAGS) -c $*.c
160
161 clean:
162         $(RM) *.o
163         $(RM) ../*.exe
164         $(RM) $(PROGNAME)
165
166
167 #-----------------------------------------------------------------------------#
168 # development only stuff                                                      #
169 #-----------------------------------------------------------------------------#
170
171 depend:
172         for i in $(SRCS); do $(CPP) $(CFLAGS) -M $$i; done > .depend
173
174 ifeq (.depend,$(wildcard .depend))
175 include .depend
176 endif