Makefile
branchtrunk
changeset 2 6bcb44b9edb1
parent 0 d85c12073dea
child 4 79da91042fcc
equal deleted inserted replaced
1:6b6864d2c4ce 2:6bcb44b9edb1
     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