rnd-20001125-3-src
[rocksndiamonds.git] / src / Makefile
1 #=============================================================================#
2 # Makefile for Rocks'n'Diamonds                                               #
3 # (c) 1995-2000 Holger Schemel, info@artsoft.org                              #
4 #=============================================================================#
5
6 ifndef PLATFORM                 # platform not specified -- try auto detection
7 ifdef COMSPEC
8 PLATFORM = msdos
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),msdos)        # MS-DOS native compiling
23
24 RM = del
25 PROGNAME = ../rocks.exe
26
27 SYS_CFLAGS = -DTARGET_X11
28 SYS_LDFLAGS = -s -lalleg -lm
29
30 else                            # Unix; Win32 cross-compiling
31
32 RM = rm -f
33 PROGNAME = ../rocksndiamonds
34
35 ifeq ($(PLATFORM),solaris)
36 EXTRA_LDFLAGS = -lnsl -lsocket -R$(XLIB_PATH)
37 endif
38
39 ifeq ($(PLATFORM),win32)
40 PROGNAME = ../rocksndiamonds.exe
41 TARGET = sdl
42 else
43 PROFILING = -pg
44 endif
45
46 ifeq ($(TARGET),sdl)
47 SYS_CFLAGS  = -DTARGET_SDL $(shell sdl-config --cflags)
48 SYS_LDFLAGS = -lSDL_image -lSDL_mixer $(shell sdl-config --libs) -lm
49 else
50 SYS_CFLAGS  = -DTARGET_X11 $(X11_INCL)
51 SYS_LDFLAGS = $(X11_LIBS) -lX11 -lm
52 endif
53
54 endif                           # (PLATFORM != msdos)
55
56
57 ifdef RO_GAME_DIR               # path to read-only game data specified
58 CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\""
59 endif
60
61 ifdef RW_GAME_DIR               # path to writable game data specified
62 CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\""
63 endif
64
65 ifdef SCORE_ENTRIES             # number of score entries per player specified
66 CONFIG_SCORE_ENTRIES = -D$(SCORE_ENTRIES)
67 endif
68
69 CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
70
71
72 CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(SOUNDS) $(JOYSTICK)
73 DEBUG = -DDEBUG -g
74
75 OPTIONS = $(DEBUG) -Wall                        # only for debugging purposes
76 # OPTIONS = $(DEBUG) -O3 -Wall                  # only for debugging purposes
77 # OPTIONS = $(DEBUG) -Wall -ansi -pedantic      # only for debugging purposes
78 # OPTIONS = -O3 -Wall -ansi -pedantic
79 # OPTIONS = -O3 -Wall
80 # OPTIONS = -O3
81
82 CFLAGS = $(OPTIONS) $(SYS_CFLAGS) $(CONFIG)
83 LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS)
84
85 SRCS =  main.c          \
86         init.c          \
87         events.c        \
88         tools.c         \
89         screens.c       \
90         misc.c          \
91         game.c          \
92         editor.c        \
93         buttons.c       \
94         files.c         \
95         tape.c          \
96         sound.c         \
97         joystick.c      \
98         cartoons.c      \
99         random.c        \
100         pcx.c           \
101         image.c         \
102         network.c       \
103         netserv.c       \
104         msdos.c         \
105         system.c        \
106         x11.c           \
107         sdl.c
108
109 OBJS =  main.o          \
110         init.o          \
111         events.o        \
112         tools.o         \
113         screens.o       \
114         misc.o          \
115         game.o          \
116         editor.o        \
117         buttons.o       \
118         files.o         \
119         tape.o          \
120         sound.o         \
121         joystick.o      \
122         cartoons.o      \
123         random.o        \
124         pcx.o           \
125         image.o         \
126         network.o       \
127         netserv.o       \
128         msdos.o         \
129         system.o        \
130         x11.o           \
131         sdl.o
132
133 all:    $(PROGNAME)
134
135 $(PROGNAME):    $(OBJS)
136         $(CC) $(PROFILING) $(OBJS) $(LDFLAGS) -o $(PROGNAME)
137
138 .c.o:
139         $(CC) $(PROFILING) $(CFLAGS) -c $*.c
140
141 clean:
142         $(RM) *.o
143         $(RM) ../*.exe
144         $(RM) $(PROGNAME)
145
146
147 #-----------------------------------------------------------------------------#
148 # development only stuff                                                      #
149 #-----------------------------------------------------------------------------#
150
151 depend:
152         for i in $(SRCS); do $(CPP) $(CFLAGS) -M $$i; done > .depend
153
154 ifeq (.depend,$(wildcard .depend))
155 include .depend
156 endif