1 # compiler selection and options |
1 # compiler selection and options |
2 CC=gcc |
2 CC = gcc |
3 CFLAGS=-g -O2 -Wall |
3 CFLAGS = -g -O2 -Wall |
|
4 DEPFLAGS = -MM -MG |
4 |
5 |
5 # install location |
6 # install location |
6 PREFIX=/usr/local |
7 PREFIX=/usr/local |
7 |
|
8 BINDIR=$(PREFIX)/bin |
8 BINDIR=$(PREFIX)/bin |
9 MANDIR=$(PREFIX)/man |
9 MANDIR=$(PREFIX)/man |
10 |
10 |
11 ############################################### |
11 ############################################### |
12 |
12 |
13 # executables |
13 TARGETS = cdbackup cdrestore |
14 TARGETS=cdbackup cdrestore |
14 VERSION = $(shell grep 'define VERSION' version.h | awk '{ print $$3 }' | sed -e 's/["]//g') |
|
15 ARCHIVE = cdbackup-$(VERSION) |
|
16 DEPFILE = .dependencies |
|
17 TMPDIR = /tmp |
15 |
18 |
16 all: $(TARGETS) |
19 all: $(TARGETS) |
17 |
20 |
18 # ruleset |
|
19 %.o: %.c |
21 %.o: %.c |
20 $(CC) $(CFLAGS) -c $< -o $@ |
22 $(CC) $(CFLAGS) -c $< -o $@ |
|
23 |
|
24 $(DEPFILE): Makefile |
|
25 @$(CC) $(DEPFLAGS) cdbackup.c cdrestore.c cdrom.c misc.c > $@ |
|
26 |
|
27 include $(DEPFILE) |
21 |
28 |
22 cdbackup: cdbackup.o cdrom.o misc.o |
29 cdbackup: cdbackup.o cdrom.o misc.o |
23 $(CC) $(CFLAGS) -o cdbackup cdbackup.o cdrom.o misc.o |
30 $(CC) $(CFLAGS) -o cdbackup cdbackup.o cdrom.o misc.o |
24 |
31 |
25 cdrestore: cdrestore.o cdrom.o misc.o |
32 cdrestore: cdrestore.o cdrom.o misc.o |
26 $(CC) $(CFLAGS) -o cdrestore cdrestore.o cdrom.o misc.o |
33 $(CC) $(CFLAGS) -o cdrestore cdrestore.o cdrom.o misc.o |
27 |
34 |
28 cdbackup.o: cdbackup.c cdbackup.h cdrom.h misc.h version.h |
|
29 cdrestore.o: cdrestore.c cdbackup.h cdrom.h misc.h version.h |
|
30 cdrom.o: cdrom.c cdbackup.h misc.h |
|
31 misc.o: misc.c misc.h |
|
32 |
|
33 # targets |
|
34 strip: $(TARGETS) |
35 strip: $(TARGETS) |
35 strip $(TARGETS) |
36 strip $(TARGETS) |
36 |
37 |
37 clean: |
38 clean: |
38 rm -f $(TARGETS) core *.core *.o |
39 rm -f $(TARGETS) $(DEPFILE) cdbackup-*.tar.gz core *.core *.o |
|
40 |
|
41 dist: clean |
|
42 @-rm -rf $(TMPDIR)/$(ARCHIVE) |
|
43 @mkdir $(TMPDIR)/$(ARCHIVE) |
|
44 @cp -a * $(TMPDIR)/$(ARCHIVE) |
|
45 @tar czf $(ARCHIVE).tar.gz -C $(TMPDIR) $(ARCHIVE) |
|
46 @-rm -rf $(TMPDIR)/$(ARCHIVE) |
|
47 @echo Distribution package created as $(ARCHIVE).tar.gz |
39 |
48 |
40 install: |
49 install: |
41 install -d $(BINDIR) |
50 install -d $(BINDIR) |
42 install $(TARGETS) $(BINDIR) |
51 install $(TARGETS) $(BINDIR) |
43 install -d $(MANDIR)/man1 |
52 install -d $(MANDIR)/man1 |