File: Makefile

package info (click to toggle)
simutrans 111.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 13,504 kB
  • ctags: 12,645
  • sloc: cpp: 101,849; ansic: 3,466; makefile: 694; sh: 44
file content (140 lines) | stat: -rw-r--r-- 4,202 bytes parent folder | download
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
129
130
131
132
133
134
135
136
137
138
139
140
CFG ?= default
-include ../config.$(CFG)

OSTYPES       = beos cygwin freebsd haiku linux mingw mac

ifeq ($(findstring $(OSTYPE), $(OSTYPES)),)
  $(error Unkown OSTYPE "$(OSTYPE)", must be one of "$(OSTYPES)")
endif

PNG_CONFIG ?= pkg-config libpng

ifneq ($(PNG_CONFIG),)
	PNG_CFLAGS  := $(shell $(PNG_CONFIG) --cflags)
	PNG_LDFLAGS := $(shell $(PNG_CONFIG) --libs)
endif

CFLAGS  += $(PNG_CFLAGS)
LDFLAGS += $(PNG_LDFLAGS)

# Absolutely essential
CFLAGS += -DMAKEOBJ
CXXFLAGS += -DMAKEOBJ

STD_LIBS += -lpng -lm

ifeq ($(OSTYPE),cygwin)
  OS_INC   ?= -I/usr/include/mingw
  OS_OPT   ?= -mwin32
  STD_LIBS += -lwinmm
endif

ifeq ($(OSTYPE),mingw)
  CC ?= gcc
  OS_OPT   ?= -DPNG_STATIC -DZLIB_STATIC -march=pentium
  # we need the libraries EXACTLY in this order to link
  STD_LIBS = -lmingw32 -lpng -lz
endif

ifeq ($(OSTYPE),mac)
  CFLAGS   += -DUSE_HW -DUSE_C  -Os -fast
  CXXFLAGS   += -DUSE_HW -DUSE_C
endif

#ifneq ($(OPTIMISE),)
#  CFLAGS   += -O3 -fno-schedule-insns
#  CXXFLAGS += -O3 -fno-schedule-insns
#  ifneq ($(OSTYPE),mac)
#    CFLAGS  += -minline-all-stringops
#  endif
#else
#  CFLAGS   += -O
#  CXXFLAGS += -O
#endif

ifdef DEBUG
  ifeq ($(shell expr $(DEBUG) \>= 1), 1)
    CFLAGS   += -g -DDEBUG
    CXXFLAGS += -g -DDEBUG
  endif
  ifeq ($(shell expr $(DEBUG) \>= 2), 1)
    CFLAGS   += -fno-inline
    CXXFLAGS += -fno-inline
  endif
  ifeq ($(shell expr $(DEBUG) \>= 3), 1)
    CFLAGS   += -O0
    CXXFLAGS += -O0
  endif
else
  CFLAGS += -DNDEBUG
  CXXFLAGS += -DNDEBUG
endif

ifneq ($(PROFILE),)
  CFLAGS   += -pg -DPROFILE -fno-inline
  CXXFLAGS += -pg -DPROFILE -fno-inline
  LDFLAGS += -pg
endif

CFLAGS   += -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -Wstrict-prototypes $(OS_INC) $(OS_OPT) $(FLAGS)
CXXFLAGS += -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align $(OS_INC) $(OS_OPT) $(FLAGS)

# SOLO_SOURCES contains files which are unique to makeobj;
# SHARED_SOURCES contains those with the exact same object code in makeobj and simutrans;
# VARIANT_SOURCES contains those which need different .o files for makeobj and simutrans.
# At the moment they're all treated identically, of course.
SOLO_SOURCES += makeobj.cc
SOLO_SOURCES += ../besch/writer/bridge_writer.cc
SOLO_SOURCES += ../besch/writer/building_writer.cc
SOLO_SOURCES += ../besch/writer/citycar_writer.cc
SOLO_SOURCES += ../besch/writer/crossing_writer.cc
SOLO_SOURCES += ../besch/writer/factory_writer.cc
SOLO_SOURCES += ../besch/writer/get_climate.cc
SOLO_SOURCES += ../besch/writer/get_waytype.cc
SOLO_SOURCES += ../besch/writer/good_writer.cc
SOLO_SOURCES += ../besch/writer/groundobj_writer.cc
SOLO_SOURCES += ../besch/writer/ground_writer.cc
SOLO_SOURCES += ../besch/writer/image_writer.cc
SOLO_SOURCES += ../besch/writer/imagelist2d_writer.cc
SOLO_SOURCES += ../besch/writer/imagelist_writer.cc
SOLO_SOURCES += ../besch/writer/obj_node.cc
SOLO_SOURCES += ../besch/writer/obj_writer.cc
SOLO_SOURCES += ../besch/writer/pedestrian_writer.cc
SOLO_SOURCES += ../besch/writer/roadsign_writer.cc
SOLO_SOURCES += ../besch/writer/root_writer.cc
SOLO_SOURCES += ../besch/writer/sim_writer.cc
SOLO_SOURCES += ../besch/writer/skin_writer.cc
SOLO_SOURCES += ../besch/writer/sound_writer.cc
SOLO_SOURCES += ../besch/writer/text_writer.cc
SOLO_SOURCES += ../besch/writer/tree_writer.cc
SOLO_SOURCES += ../besch/writer/tunnel_writer.cc
SOLO_SOURCES += ../besch/writer/vehicle_writer.cc
SOLO_SOURCES += ../besch/writer/way_writer.cc
SOLO_SOURCES += ../besch/writer/way_obj_writer.cc
SOLO_SOURCES += ../besch/writer/xref_writer.cc
SOLO_SOURCES += ../utils/dr_rdpng.cc
SHARED_SOURCES += ../besch/bild_besch.cc
SHARED_SOURCES += ../dataobj/freelist.cc
SHARED_SOURCES += ../dataobj/tabfile.cc
SHARED_SOURCES += ../simdebug.cc
SHARED_SOURCES += ../simmem.cc
SHARED_SOURCES += ../utils/simstring.cc
SHARED_SOURCES += ../utils/searchfolder.cc
VARIANT_SOURCES += ../simtools.cc
VARIANT_SOURCES += ../utils/log.cc

SOURCES ?= $(SOLO_SOURCES) $(SHARED_SOURCES) $(VARIANT_SOURCES)

BUILDDIR ?= build/$(CFG)
TOOL  = makeobj
PROG ?= makeobj

ifeq ($(origin MAKEOBJ_PROGDIR), undefined)
  MAKEOBJ_PROGDIR := ../$(BUILDDIR)/$(TOOL)
endif

BUILDDIR := ../$(BUILDDIR)

TOOL_PROGDIR = $(MAKEOBJ_PROGDIR)

include ../uncommon.mk