blob: 0fec7c20d059b79e6f74df53bbd41f75815e9104 (
plain)
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
|
CC = /usr/bin/g++
CFLAGS = -Wall -std=c++11 -shared -fPIC
DEBUGFLAGS = -Wall -g -std=c++11
LDFLAGS =
SONAME = engine
BUILDDIR = build
SOURCEDIR = src
#VERSION
VERSION = 0
PATCHLEVEL = 4
OUTPUT = lib$(SONAME).so.$(VERSION).$(PATCHLEVEL)
OBJ = cObject.o cObjectHandler.o cRender.o cInput.o cWiremesh.o
build: dir genversion $(OBJ)
$(CC) $(CFLAGS) -o $(BUILDDIR)/lib/$(OUTPUT) $(OBJ) $(LDFLAGS) -Wl,-soname=lib$(SONAME).so.$(VERSION)
ln -sf $(OUTPUT) $(BUILDDIR)/lib/lib$(SONAME).so.$(VERSION)
ln -sf $(OUTPUT) $(BUILDDIR)/lib/lib$(SONAME).so
cp src/c*.h $(BUILDDIR)/inc
cp src/version.h $(BUILDDIR)/inc
dir:
mkdir -p $(BUILDDIR)
mkdir -p $(BUILDDIR)/lib
mkdir -p $(BUILDDIR)/inc
%.o: $(SOURCEDIR)/%.cpp
@echo
@echo Building $<
@echo ==============
@echo
$(CC) $(CFLAGS) -c $<
%.o: example/%.cpp
$(CC) $(CFLAGS) -I$(SOURCEDIR) -c $<
all: clean build
.PHONY: clean
clean:
rm -df $(OBJ) test.o src/version.h
rm -Rdf $(BUILDDIR)/lib $(BUILDDIR)/inc $(BUILDDIR)/test doc/
run: gentest
./$(BUILDDIR)/test/test
memleak: gentest
valgrind ./$(BUILDDIR)/test/test
genversion:
@echo Building Version
@echo "//Generated by MAKEFILE. DO NOT Edit." > src/version.h
@echo "#pragma once" >> src/version.h
@echo "#define VERSION $(VERSION)" >> src/version.h
@echo "#define PATCHLEVEL $(PATCHLEVEL)" >> src/version.h
@echo "#define VERSTRING \"`git describe`\"" >> src/version.h
@echo "#define DATE \"`date +'%d.%m.20%y'`\"" >> src/version.h
@echo "#define TIME \"`date +'%H:%M:%S'`\"" >> src/version.h
gentest: build test.o
mkdir -p $(BUILDDIR)/test
$(CC) $(DEBUGFLAGS) -o $(BUILDDIR)/test/test test.o $(OBJ) $(LDFLAGS)
test: gentest
./$(BUILDDIR)/test/test test
doc:
mkdir -p doc
doxygen .doxygen
|