File: Makefile

package info (click to toggle)
box2d 2.0.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 1,748 kB
  • ctags: 2,143
  • sloc: cpp: 15,308; xml: 1,249; cs: 648; makefile: 338; ansic: 28
file content (128 lines) | stat: -rw-r--r-- 3,638 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
all: libbox2d.so libbox2d.a

fixed: libbox2d-fixed.so libbox2d-fixed.a

MAJOR=0
MINOR=0d1

SOURCES = \
	Source/Collision/b2Distance.cpp \
	Source/Collision/b2TimeOfImpact.cpp \
	Source/Collision/b2CollideCircle.cpp \
	Source/Collision/b2CollidePoly.cpp \
	Source/Collision/Shapes/b2PolygonShape.cpp \
	Source/Collision/Shapes/b2CircleShape.cpp \
	Source/Collision/Shapes/b2Shape.cpp \
	Source/Collision/b2PairManager.cpp \
	Source/Collision/b2Collision.cpp \
	Source/Collision/b2BroadPhase.cpp \
	Source/Dynamics/b2WorldCallbacks.cpp \
	Source/Dynamics/Joints/b2PrismaticJoint.cpp \
	Source/Dynamics/Joints/b2MouseJoint.cpp \
	Source/Dynamics/Joints/b2GearJoint.cpp \
	Source/Dynamics/Joints/b2Joint.cpp \
	Source/Dynamics/Joints/b2PulleyJoint.cpp \
	Source/Dynamics/Joints/b2DistanceJoint.cpp \
	Source/Dynamics/Joints/b2RevoluteJoint.cpp \
	Source/Dynamics/Contacts/b2CircleContact.cpp \
	Source/Dynamics/Contacts/b2PolyAndCircleContact.cpp \
	Source/Dynamics/Contacts/b2Contact.cpp \
	Source/Dynamics/Contacts/b2PolyContact.cpp \
	Source/Dynamics/Contacts/b2ContactSolver.cpp \
	Source/Dynamics/b2Island.cpp \
	Source/Dynamics/b2Body.cpp \
	Source/Dynamics/b2ContactManager.cpp \
	Source/Dynamics/b2World.cpp \
	Source/Common/b2BlockAllocator.cpp \
	Source/Common/b2StackAllocator.cpp \
	Source/Common/b2Settings.cpp \
	Source/Common/b2Math.cpp

OBJS = $(SOURCES:.cpp=.o)
STATIC_OBJS = $(SOURCES:.cpp=.static.o)
FIXED_OBJS = $(SOURCES:.cpp=.fixed.o)
STATIC_FIXED_OBJS = $(SOURCES:.cpp=.static_fixed.o)

STATIC_CFLAGS= -O2 -g -Wall
CFLAGS= $(STATIC_CFLAGS) -fPIC
LDFLAGS= -Wl,-z,defs -Wl,--as-needed -Wl,--no-undefined

libbox2d.so.$(MAJOR).$(MINOR): $(OBJS)
	g++ $(LDFLAGS) -shared \
		-Wl,-soname,libbox2d.so.$(MAJOR) \
		-o libbox2d.so.$(MAJOR).$(MINOR) \
		$+ -o $@ $(LIBS)

libbox2d.so: libbox2d.so.$(MAJOR).$(MINOR)
	rm -f $@.$(MAJOR)
	ln -s $@.$(MAJOR).$(MINOR) $@.$(MAJOR)
	rm -f $@
	ln -s $@.$(MAJOR) $@

libbox2d.a: $(STATIC_OBJS)
	ar cru $@ $+

libbox2d-fixed.so.$(MAJOR).$(MINOR): $(FIXED_OBJS)
	g++ $(LDFLAGS) -shared \
		-Wl,-soname,libbox2d-fixed.so.$(MAJOR) \
		-o libbox2d-fixed.so.$(MAJOR).$(MINOR) \
		$+ -o $@ $(LIBS)

libbox2d-fixed.so: libbox2d-fixed.so.$(MAJOR).$(MINOR)
	rm -f $@.$(MAJOR)
	ln -s $@.$(MAJOR).$(MINOR) $@.$(MAJOR)
	rm -f $@
	ln -s $@.$(MAJOR) $@

libbox2d-fixed.a: $(STATIC_FIXED_OBJS)
	ar cru $@ $+

%.o: %.cpp
	g++ -o $@ -c $+ $(CFLAGS) $(PKGCONFIG_CFLAGS)

%.o: %.c
	gcc -o $@ -c $+ $(CFLAGS) $(PKGCONFIG_CFLAGS)

%.so : %.o
	g++ $(LDFLAGS) -shared $^ -o $@

%.static.o: %.cpp
	g++ -o $@ -c $+ $(STATIC_CFLAGS) $(PKGCONFIG_CFLAGS)

%.static.o: %.c
	gcc -o $@ -c $+ $(STATIC_CFLAGS) $(PKGCONFIG_CFLAGS)

%.fixed.o: %.cpp
	g++ -o $@ -c $+ $(CFLAGS) -DTARGET_FLOAT32_IS_FIXED $(PKGCONFIG_CFLAGS)

%.fixed.o: %.c
	gcc -o $@ -c $+ $(CFLAGS) -DTARGET_FLOAT32_IS_FIXED $(PKGCONFIG_CFLAGS)

%.static_fixed.o: %.cpp
	g++ -o $@ -c $+ $(STATIC_CFLAGS) -DTARGET_FLOAT32_IS_FIXED $(PKGCONFIG_CFLAGS)

%.static_fixed.o: %.c
	gcc -o $@ -c $+ $(STATIC_CFLAGS) -DTARGET_FLOAT32_IS_FIXED $(PKGCONFIG_CFLAGS)

clean:
	rm -f $(OBJS)
	rm -f $(STATIC_OBJS)
	rm -f $(FIXED_OBJS)
	rm -f $(STATIC_FIXED_OBJS)
	rm -f *.so *.so* *.a

DESTDIR=

install:
	mkdir -p "$(DESTDIR)/usr/lib/"
	cp -a *.a "$(DESTDIR)/usr/lib/"
	cp -a *.so* "$(DESTDIR)/usr/lib/"
	mkdir -p "$(DESTDIR)/usr/include/"
	cat Include/Box2D.h | sed -e 's|^#include "../Source/\(.*\)"|#include <Box2D/\1>|g' > "$(DESTDIR)/usr/include/Box2D.h"
	find Source/ -name "*.h" | \
		while read f; do \
			t=`echo "$$f" | sed -e 's|^Source/|/usr/include/Box2D/|'` ; \
			d=`dirname "$$t"`; \
			mkdir -p "$(DESTDIR)/$$d" ; \
			cp "$$f" "$(DESTDIR)/$$t"; \
		done