File: Makefile.in

package info (click to toggle)
barcode 0.94-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 612 kB
  • ctags: 370
  • sloc: ansic: 2,205; perl: 1,676; python: 416; sh: 187; makefile: 170; awk: 74; sed: 5
file content (120 lines) | stat: -rw-r--r-- 2,779 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#
# This Makefile uses gmake features, by now
#

CC = @CC@
CFLAGS = @CFLAGS@ @NO_GETOPT@ @NO_LIBPAPER@ @NO_STRERROR@
RANLIB = @RANLIB@

INSTALL = @INSTALL@

LDFLAGS = -L. -l$(TARGET) @LIBPAPER@

prefix = @prefix@
BINDIR = $(prefix)/bin
LIBDIR = $(prefix)/lib
INCDIR = $(prefix)/include
MAN1DIR = $(prefix)/man/man1
MAN3DIR = $(prefix)/man/man3
INFODIR = $(prefix)/info

# getopt may be installed or not, if not take our copy
GETOPT_O = @GETOPT_O@

TARGET = barcode
LIBRARY = lib$(TARGET).a
MAN1 = $(TARGET).1
MAN3 = $(TARGET).3
INFO = doc/$(TARGET).info
HEADER = $(TARGET).h

LIBOBJECTS = library.o ean.o code128.o code39.o i25.o ps.o
EXEOBJECTS = main.o cmdline.o $(GETOPT_O)

all: $(TARGET) $(LIBRARY) $(MAN1) $(MAN3) $(INFO) sample

$(TARGET): $(LIBRARY) $(EXEOBJECTS)
	$(CC) $(CFLAGS) $(EXEOBJECTS) $(LDFLAGS) -o $(TARGET)

sample: sample.o $(LIBRARY)
	$(CC) $(CFLAGS) sample.o $(LDFLAGS) -o $@ 

# Avoid the standard CFLAGS, to avoid -Wall and -DNO_GETOPT
compat/getopt.o: compat/getopt.c
	$(CC) -O -c $^ -o $@

$(LIBRARY): $(LIBOBJECTS)
	$(AR) r $(LIBRARY) $(LIBOBJECTS)
	$(RANLIB) $(LIBRARY)

$(MAN1) $(MAN3): doc/doc.$(TARGET)
	gawk -f doc/manpager $^


$(INFO): doc/doc.$(TARGET)
	$(MAKE) -C doc

install:
	$(INSTALL) -d $(BINDIR) $(INCDIR) $(LIBDIR) $(MAN1DIR) \
		$(MAN3DIR) $(INFODIR)
	$(INSTALL) -c $(TARGET) $(BINDIR)
	$(INSTALL) -c -m 0644 $(HEADER) $(INCDIR)
	$(INSTALL) -c -m 0644  $(LIBRARY) $(LIBDIR)
	$(INSTALL) -c -m 0644  $(MAN1) $(MAN1DIR)
	$(INSTALL) -c -m 0644  $(MAN3) $(MAN3DIR)
	$(INSTALL) -c -m 0644  $(INFO) $(INFODIR)

uninstall:
	$(RM) -f $(BINDIR)/$(TARGET)
	$(RM) -f $(INCDIR)/$(HEADER)
	$(RM) -f $(LIBDIR)/$(LIBRARY)
	$(RM) -f $(MAN1DIR)/$(MAN1)
	$(RM) -f $(MAN3DIR)/$(MAN3)
	$(RM) -f $(INDODIR)/$(INFO)

mostlyclean:
	$(RM) -f *.o */*.o *~ */*~ $(TARGET) $(LIBRARY)
	$(RM) -f  $(MAN1) $(MAN3) core sample
	$(MAKE) -C doc terse
	$(RM) -f .depend

clean: mostlyclean
	# remove the documents, too
	$(MAKE) -C doc clean

distclean: mostlyclean
	if [ -f build ]; then debian/rules clean; fi
	# remove the configure stuff as well
	$(RM) -f Makefile config.h config.log config.status config.cache


Makefile: Makefile.in configure
	./configure

configure: configure.in
	autoconf

.depend: $(wildcard *.[c])
	$(CC) $(CFLAGS) -MM $^ > $@

depend: .depend

tar:
	n=`basename \`/bin/pwd\``; cd ..; tar cvf - $$n | gzip > $$n.tar.gz

# print the version, as I usually forget to update it when distributing
printv:
	@grep -n VERSION $(HEADER) /dev/null
	@grep -n set.version doc/doc.$(TARGET) /dev/null
	@grep -n dpkg.-i INSTALL

# and this is how I make the distribution
distrib: $(INFO) distclean tar printv


.PHONY: all install uninstall mostlyclean clean disclean depend \
	tar printv distrib

ifeq (.depend,$(wildcard .depend))
include .depend
endif