summaryrefslogtreecommitdiffstats
path: root/libdimension/Makefile.am
blob: 0d15ff914f0bddfdb4a9096e62b9a1ea5e1e0aaf (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
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
###########################################################################
## Copyright (C) 2010 Tavian Barnes <tavianator@gmail.com>               ##
##                                                                       ##
## This file is part of The Dimension Build Suite.                       ##
##                                                                       ##
## The Dimension Build Suite is free software; you can redistribute it   ##
## and/or modify it under the terms of the GNU General Public License as ##
## published by the Free Software Foundation; either version 3 of the    ##
## License, or (at your option) any later version.                       ##
##                                                                       ##
## The Dimension Build Suite is distributed in the hope that it will be  ##
## useful, but WITHOUT ANY WARRANTY; without even the implied warranty   ##
## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  ##
## General Public License for more details.                              ##
##                                                                       ##
## You should have received a copy of the GNU General Public License     ##
## along with this program.  If not, see <http://www.gnu.org/licenses/>. ##
###########################################################################

# Make dmnsn_error() backtraces useful
AM_LDFLAGS = -rdynamic

nobase_include_HEADERS = dimension.h                                           \
                         dimension/array.h                                     \
                         dimension/camera.h                                    \
                         dimension/cameras.h                                   \
                         dimension/canvas.h                                    \
                         dimension/color.h                                     \
                         dimension/csg.h                                       \
                         dimension/error.h                                     \
                         dimension/finishes.h                                  \
                         dimension/geometry.h                                  \
                         dimension/gl.h                                        \
                         dimension/interior.h                                  \
                         dimension/light.h                                     \
                         dimension/lights.h                                    \
                         dimension/list.h                                      \
                         dimension/malloc.h                                    \
                         dimension/object.h                                    \
                         dimension/objects.h                                   \
                         dimension/pigments.h                                  \
                         dimension/png.h                                       \
                         dimension/progress.h                                  \
                         dimension/raytrace.h                                  \
                         dimension/scene.h                                     \
                         dimension/texture.h

lib_LTLIBRARIES = libdimension.la

libdimension_la_SOURCES = $(nobase_include_HEADERS)                            \
                          ambient.c                                            \
                          prtree.c                                             \
                          prtree.h                                             \
                          camera.c                                             \
                          canvas.c                                             \
                          canvas_pigment.c                                     \
                          color.c                                              \
                          cube.c                                               \
                          csg.c                                                \
                          diffuse.c                                            \
                          dimension_impl.h                                     \
                          error.c                                              \
                          finish_combination.c                                 \
                          geometry.c                                           \
                          inlines.c                                            \
                          interior.c                                           \
                          light.c                                              \
                          list.c                                               \
                          malloc.c                                             \
                          object.c                                             \
                          perspective.c                                        \
                          phong.c                                              \
                          plane.c                                              \
                          point_light.c                                        \
                          progress.c                                           \
                          raytrace.c                                           \
                          reflective.c                                         \
                          scene.c                                              \
                          solid_pigment.c                                      \
                          sphere.c                                             \
                          texture.c                                            \
                          threads.c                                            \
                          threads.h
libdimension_la_CFLAGS  = $(AM_CFLAGS) -pthread
libdimension_la_LDFLAGS = -version-info 0:0:0 $(AM_LDFLAGS)
libdimension_la_LIBADD  = -lm

if PNG
libdimension_la_SOURCES += png.c
libdimension_la_LIBADD  += -lpng
else
libdimension_la_SOURCES += png-stubs.c
endif

if GL
libdimension_la_SOURCES += gl.c
libdimension_la_LIBADD  += -lGL
else
libdimension_la_SOURCES += gl-stubs.c
endif

if PGO

noinst_LTLIBRARIES = libdimension-pgo.la
libdimension_pgo_la_SOURCES = $(libdimension_la_SOURCES)
libdimension_pgo_la_LIBADD  = $(libdimension_la_LIBADD) -lgcov
libdimension_pgo_la_CFLAGS  = $(libdimension_la_CFLAGS) -fprofile-generate=$$(readlink -f $(builddir))/pgo

libdimension_la_CFLAGS += -fprofile-correction -fprofile-use=./pgo

all-local: libdimension.la
	@for Plo in .deps/libdimension_la*.Plo; do \
	  [ -f "pgo/.libs/$$(basename $$Plo .Plo).gcda" ] && sed -ri 's|^(libdimension_la-.*).lo: ([^ ])|\1.lo:  pgo/.libs/\1.gcda \2|g' "$$Plo"; \
	  true; \
	done

clean-local:
	rm -rf pgo
endif