File: Makefile

package info (click to toggle)
libstb 0.0~git20180212.15.e6afb9c-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,440 kB
  • sloc: ansic: 65,656; cpp: 1,020; makefile: 54
file content (60 lines) | stat: -rw-r--r-- 1,466 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
PROJECT = libstb

MULTIARCH := $(shell gcc --print-multiarch)

INCLUDEDIR := $(DESTDIR)/usr/include/stb
LIBDIR := $(DESTDIR)/usr/lib/$(MULTIARCH)

CFLAGS += -fPIC -DSTB_DEFINE

BLACKLIST := \
 stb_connected_components \
 stb_easy_font \
 stb_textedit \
 stb_tilemap_editor \
 stb_voxel_render

HEADERS := $(wildcard *.h)
HEADERS_TOBE_PRECOMPILED := $(filter-out $(BLACKLIST:=.h),$(HEADERS))
SRCS := $(HEADERS_TOBE_PRECOMPILED:.h=.c)
OBJS := $(HEADERS_TOBE_PRECOMPILED:.h=.o) stb_vorbis.o

SO_NAME := $(PROJECT).so.0
REAL_NAME := $(PROJECT).so.0.0

all: $(PROJECT).a $(PROJECT).so

$(PROJECT).a: $(OBJS)
	$(AR) rcs $@ $^

$(PROJECT).so: $(OBJS)
	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^ -lm

%.c: %.h
	cp $< $@

%.o: %.c
	$(CC) $(CFLAGS) -D$(shell echo $* | tr a-z A-Z)_IMPLEMENTATION -c $^

clean:
	rm -f $(PROJECT).a $(PROJECT).so $(OBJS) $(SRCS)

install-shared: $(PROJECT).so
	install -d $(LIBDIR) || true
	install -m 0644 $(PROJECT).so $(LIBDIR)/$(REAL_NAME)
	rm -f $(LIBDIR)/$(SO_NAME)
	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
	rm -f $(LIBDIR)/$(PROJECT).so
	ln -s $(SO_NAME) $(LIBDIR)/$(PROJECT).so

install-static: $(PROJECT).a
	install -d $(LIBDIR) || true
	install -m 0644 $(PROJECT).a $(LIBDIR)/$(PROJECT).a

install-header: $(HEADERS)
	install -d $(INCLUDEDIR) || true
	install -m 0644 $(HEADERS) $(INCLUDEDIR)/

install: install-shared install-static install-header

.PHONY: all clean install install-shared install-static install-header