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
|
--- Makefile.orig 2006-03-29 00:08:39.000000000 -0500
+++ Makefile 2006-03-29 00:09:36.000000000 -0500
@@ -2,7 +2,7 @@
include Makefile.conf
-CFLAGS += $(SGE_CFLAGS) -fPIC $(FT_CFLAGS)
+CXXFLAGS += $(SGE_CFLAGS) -fPIC $(FT_CFLAGS)
LIBS =$(SGE_LIBS)
SGE_VER = 030809
@@ -10,20 +10,26 @@
OBJECTS=sge_surface.o sge_primitives.o sge_tt_text.o sge_bm_text.o sge_misc.o sge_textpp.o sge_blib.o sge_rotation.o sge_collision.o sge_shape.o
-all: config $(OBJECTS)
- @ar rsc libSGE.a $(OBJECTS)
+SHARED_LIB=libSGE.so.$(API_VER)
+STATIC_LIB=libSGE.a
-$(OBJECTS): %.o:%.cpp %.h #Each object depends on thier .cpp and .h file
- $(CXX) $(CFLAGS) -c $<
+all: sge_config.h $(OBJECTS) $(SHARED_LIB) $(STATIC_LIB)
-shared: all
- $(CXX) $(CFLAGS) -Wl,-soname,libSGE.so.$(API_VER) -fpic -fPIC -shared -o libSGE.so $(OBJECTS) $(LIBS)
+$(STATIC_LIB): $(OBJECTS)
+ $(AR) rsc libSGE.a $(OBJECTS)
-shared-strip: shared
+$(OBJECTS): sge_config.h
+$(OBJECTS): %.o:%.cpp %.h #Each object depends on their .cpp and .h file
+ $(CXX) $(CXXFLAGS) -c $<
+
+$(SHARED_LIB): $(OBJECTS)
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libSGE.so.$(API_VER) -fpic -fPIC -shared -o libSGE.so $(OBJECTS) $(LIBS)
+
+shared-strip: $(SHARED_LIB)
@strip libSGE.so
# Building a dll... I have no idea how to do this, but it should be something like below.
-dll: config $(OBJECTS)
+dll: sge_config.h $(OBJECTS)
dlltool --output-def SGE.def $(OBJECTS)
dllwrap --driver-name $(CXX) -o SGE.dll --def SGE.def --output-lib libSGE.a --dllname SGE.dll $(OBJECTS) $(LIBS)
@@ -33,21 +39,22 @@
clean:
@rm -f *.o *.so *.a *.dll *.def
-config:
- @echo "/* SGE Config header (generated automatically) */" >sge_config.h
- @echo "#define SGE_VER $(SGE_VER)" >>sge_config.h
+sge_config.h:
+ @echo "/* SGE Config header (generated automatically) */" >sge_config.h.tmp
+ @echo "#define SGE_VER $(SGE_VER)" >>sge_config.h.tmp
ifeq ($(C_COMP),y)
- @echo "#define _SGE_C_AND_CPP" >>sge_config.h
+ @echo "#define _SGE_C_AND_CPP" >>sge_config.h.tmp
endif
ifeq ($(USE_FT),n)
- @echo "#define _SGE_NOTTF" >>sge_config.h
+ @echo "#define _SGE_NOTTF" >>sge_config.h.tmp
endif
ifeq ($(USE_IMG),y)
- @echo "#define _SGE_HAVE_IMG" >>sge_config.h
+ @echo "#define _SGE_HAVE_IMG" >>sge_config.h.tmp
endif
ifeq ($(NO_CLASSES),y)
- @echo "#define _SGE_NO_CLASSES" >>sge_config.h
+ @echo "#define _SGE_NO_CLASSES" >>sge_config.h.tmp
endif
+ mv sge_config.h.tmp sge_config.h
ifneq ($(QUIET),y)
@echo "== SGE r$(SGE_VER)"
@@ -70,13 +77,13 @@
@echo ""
endif
-install: shared
- @mkdir -p $(PREFIX_H)
- install -c -m 644 sge*.h $(PREFIX_H)
- @mkdir -p $(PREFIX)/lib
- install -c -m 644 libSGE.a $(PREFIX)/lib
- install -c libSGE.so $(PREFIX)/lib/libSGE.so.$(API_VER).$(SGE_VER)
- @cd $(PREFIX)/lib;\
+install: $(SHARED_LIB) $(STATIC_LIB)
+ @mkdir -p $(DESTDIR)$(PREFIX_H)
+ install -c -m 644 sge*.h $(DESTDIR)$(PREFIX_H)
+ @mkdir -p $(DESTDIR)$(PREFIX)/lib
+ install -c -m 644 $(STATIC_LIB) $(DESTDIR)$(PREFIX)/lib
+ install -c libSGE.so $(DESTDIR)$(PREFIX)/lib/libSGE.so.$(API_VER).$(SGE_VER)
+ @cd $(DESTDIR)$(PREFIX)/lib;\
ln -sf libSGE.so.$(API_VER).$(SGE_VER) libSGE.so.$(API_VER);\
ln -sf libSGE.so.$(API_VER) libSGE.so
@echo "** Headerfiles installed in $(PREFIX_H)"
--- Makefile.conf.orig 2006-03-29 00:08:39.000000000 -0500
+++ Makefile.conf 2006-03-29 00:08:39.000000000 -0500
@@ -11,6 +11,7 @@
# Compilers (C and C++)
CC=gcc
CXX=g++
+AR=ar
# Make sure sdl-config is available
HAVE_SDL =$(shell if (sdl-config --version) < /dev/null > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
@@ -25,11 +26,13 @@
PREFIX_H =$(shell sdl-config --prefix)/include/SDL
# Flags passed to the compiler
-CFLAGS =-Wall -O3 -ffast-math
+CXXFLAGS ?=-O3 -ffast-math
SGE_CFLAGS =$(shell sdl-config --cflags)
# Uncomment to make some more optimizations
-#CFLAGS =-Wall -O9 -ffast-math -march=i686
+#CXXFLAGS =-O9 -ffast-math -march=i686
+# Spit out warnings
+CXXFLAGS += -Wall
# Libs config
SGE_LIBS =$(shell sdl-config --libs) -lstdc++
|