-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (48 loc) · 2.06 KB
/
Copy pathMakefile
File metadata and controls
68 lines (48 loc) · 2.06 KB
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
# Makefile for libdidaq
CC?=gcc
CFLAGS?=-Wall -O2 -g -fanalyzer
PREFIX?=/usr/local
LIBDIR?=lib
INCDIR?=include
BINDIR?=bin
LIB=libdidaq.so
VER_MAJOR=0
VER_MINOR=0
VER_REV=5
VERSIONED_LIB = $(LIB).$(VER_MAJOR).$(VER_MINOR).$(VER_REV)
NAMED_LIB = $(LIB).$(VER_MAJOR)
SRC=src/didaq_regs.c src/didaq.c src/didaq_adc.c src/didaq_sdm.c
EXAMPLES=examples/didaq-dump examples/didaq-get-scalers examples/didaq-wfs examples/didaq-rms \
examples/didaq-wfs-csv examples/didaq-coin-thresh-scan examples/didaq-beam-thresh-scan \
examples/didaq-adc-reg examples/didaq-configure-coinc-trig examples/didaq-configure-phased-trig \
examples/didaq-read-adc-vendor-id examples/didaq-equalize-gains
OBJS = $(SRC:.c=.o)
INC_PUBLIC=src/didaq.h src/didaq_regs.h src/didaq_adc.h src/didaq_sdm.h
LINKLIBS=-ldidaq -lgpios -lm
INC_PRIVATE=src/didaq_internal.h src/didaq_helpers.h
INCLUDES=$(INC_PUBLIC) $(INC_PRIVATE)
.PHONY: all clean
all: $(LIB) $(EXAMPLES)
src/didaq.h: src/didaq.h.in
sed $< -e "s/DIDAQ_VERSION_MAJOR @@/DIDAQ_VERSION_MAJOR $(VER_MAJOR)/" -e "s/DIDAQ_VERSION_MINOR @@/DIDAQ_VERSION_MINOR $(VER_MINOR)/" -e "s/DIDAQ_VERSION_REV @@/DIDAQ_VERSION_REV $(VER_REV)/" > $@
src/%.o: src/%.c $(INCLUDES)
$(CC) $(CFLAGS) -fPIC -Isrc -c $< -o $@
examples/%: examples/%.c $(LIB)
$(CC) $(CFLAGS) -Isrc $< -o $@ -L. $(LINKLIBS) $(LDFLAGS)
$(LIB): $(NAMED_LIB)
ln -sf $< $@
$(NAMED_LIB): $(VERSIONED_LIB)
ln -sf $< $@
$(VERSIONED_LIB): $(OBJS)
$(CC) -shared $(LDFLAGS) -Wl,-soname,$(NAMED_LIB) -o $@ $^
install: $(LIB) $(EXAMPLES)
install -d $(DESTDIR)$(PREFIX)/$(LIBDIR)
install -m 0755 $(VERSIONED_LIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
ln -sfr $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(VERSIONED_LIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(NAMED_LIB)
ln -sfr $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(NAMED_LIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(LIB)
install -d $(DESTDIR)$(PREFIX)/$(INCDIR)
install -m 0644 $(INC_PUBLIC) $(DESTDIR)$(PREFIX)/$(INCDIR)/
install -d $(DESTDIR)$(PREFIX)/$(BINDIR)
install -m 0755 $(EXAMPLES) $(DESTDIR)$(PREFIX)/$(BINDIR)/
clean:
rm -f $(LIB) $(OBJS) $(NAMED_LIB) $(VERSIONED_LIB) $(EXAMPLES)