File: Makefile

package info (click to toggle)
gr-framework 0.73.14%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,600 kB
  • sloc: ansic: 87,413; cpp: 45,348; objc: 3,057; javascript: 2,647; makefile: 1,129; python: 1,000; sh: 991; yacc: 855; pascal: 554; fortran: 228
file content (94 lines) | stat: -rw-r--r-- 2,936 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
ifeq ($(strip $(THIRDPARTYDIR)),)
override THIRDPARTYDIR = $(abspath $(CURDIR)/../../3rdparty/build)
endif

       GRDIR = /usr/local/gr
      LIBDIR = $(DESTDIR)$(GRDIR)/lib
      INCDIR = $(DESTDIR)$(GRDIR)/include

UNAME := $(shell uname)

    INCLUDES = -I$(THIRDPARTYDIR)/include -I../gr -I../gks
      GRLIBS = -L../gr -lGR
     PNGLIBS = $(THIRDPARTYDIR)/lib/libpng.a
    JPEGLIBS = $(THIRDPARTYDIR)/lib/libjpeg.a
       ZLIBS = $(THIRDPARTYDIR)/lib/libz.a
      CFLAGS = -O3 -Wall -Wextra -pedantic -fPIC -pthread -DGRDIR=\"$(GRDIR)\" $(EXTRA_CFLAGS)
        OBJS = gr3.o gr3_convenience.o gr3_html.o gr3_povray.o gr3_png.o \
               gr3_jpeg.o gr3_gr.o gr3_mc.o gr3_slices.o gr3_sr.o

ifeq ($(UNAME), Darwin)
GR_SHARED_LIBRARY_SUFFIX ?= .dylib
      CFLAGS+= -mmacosx-version-min=10.15
      GLLIBS = -framework OpenGL -framework Cocoa
        OBJS+= gr3_cgl.o
INSTALL_NAME = -Wl,-install_name,@rpath/libGR3${GR_SHARED_LIBRARY_SUFFIX}
     LDFLAGS = $(EXTRA_LDFLAGS) -Wl,-rpath,@loader_path/. -mmacosx-version-min=10.15
     SOFLAGS = -dynamiclib
        LIBS =
else
GR_SHARED_LIBRARY_SUFFIX ?= .so
      GLLIBS =
PLATFORMLIBS = -lX11 -lGL
        OBJS+= gr3_glx.o
INSTALL_NAME =
     LDFLAGS = $(EXTRA_LDFLAGS) -Wl,-rpath,'$$ORIGIN/.'
     SOFLAGS = -shared -Wl,-soname,$@
        LIBS = -ldl
endif

default:
	$(MAKE) -C ../.. Makedefs
	$(MAKE) `cat ../../Makedefs`

all: targets

targets: prerequisites libGR3${GR_SHARED_LIBRARY_SUFFIX}

prerequisites:
	$(MAKE) -C ../gr

ifeq ($(UNAME), $(filter $(UNAME),Linux FreeBSD))  # if $(UNAME) in (Linux, FreeBSD)
targets: libGR3platform.so
install: install_platform
install_platform:
	@if [ ! -d $(DESTDIR)$(GRDIR) ]; then mkdir -m 755 $(DESTDIR)$(GRDIR); fi
	@if [ ! -d $(LIBDIR) ]; then mkdir -m 755 $(LIBDIR); fi
	cp -r libGR3platform.so $(LIBDIR)
libGR3platform.so: gr3_platform_glx.c
	${CC} -o $@ $^ $(CFLAGS) $(INCLUDES) $(PLATFORMLIBS) $(SOFLAGS) $(LDFLAGS) $(GLDEFS)
endif

.c.o:
	${CC} -c $< $(CFLAGS) $(INCLUDES) $(GLDEFS)

libGR3${GR_SHARED_LIBRARY_SUFFIX}: $(OBJS)
	${CC} -o $@ $^ $(CFLAGS) $(JPEGLIBS) $(GLLIBS) $(GRLIBS) $(PNGLIBS) $(ZLIBS) $(LIBS) \
	$(SOFLAGS) $(LDFLAGS) $(INSTALL_NAME)

gr3.c: gr3.h gr3_internals.h gr3_sr.h
gr3_internals.h: gr3.h gr3_glx.h gr3_cgl.h
gr3_glx.c: gr3_glx.h
gr3_cgl.c: gr3_cgl.h
gr3_convenience.c: gr3_internals.h
gr3_html.c: gr3_internals.h
gr3_povray.c: gr3_internals.h
gr3_png.c: gr3_internals.h
gr3_jpeg.c: gr3_internals.h
gr3_gr.c: gr3_internals.h gr3_sr.h
gr3_mc.c: gr3.h gr3_mc_data.h
gr3_slices.c: gr3.h
gr3_sr.c: gr3_sr.h

install: targets
	@if [ ! -d $(DESTDIR)$(GRDIR) ]; then mkdir -m 755 $(DESTDIR)$(GRDIR); fi
	@if [ ! -d $(LIBDIR) ]; then mkdir -m 755 $(LIBDIR); fi
	cp -p libGR3${GR_SHARED_LIBRARY_SUFFIX} $(LIBDIR)
	@if [ ! -d $(INCDIR) ]; then mkdir -m 755 $(INCDIR); fi
	cp -p gr3.h $(INCDIR)

clean:
	$(MAKE) -C ../gr clean
	rm -rf libGR3${GR_SHARED_LIBRARY_SUFFIX}*
	rm -rf libGR3platform.so*
	rm -f *.o