File: Makefile

package info (click to toggle)
welcome2l 3.04-27
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 724 kB
  • sloc: ansic: 1,469; makefile: 124; sh: 47
file content (118 lines) | stat: -rw-r--r-- 4,456 bytes parent folder | download | duplicates (2)
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
SHELL=/bin/sh
CC = gcc
CFLAGS += -Wall -fno-strength-reduce #-pedantic
DESTDIR = /usr/local
INSTALL_BINPATH = $(DESTDIR)/bin
INSTALL_MANPATH = $(DESTDIR)/man
PROGNAME = Welcome2L
PROGNAME_LNK = welcome2l
VERSION = 3.04
VERSION_DATE = 1999
RPM_RELEASE = 1
RPM_BUILDPATH = /usr/src/redhat
#RPM_ICONNAME = 
STRIP = strip


$(PROGNAME): main.o ansi.o 	     
	$(CC) $(LDFLAGS) -v *.o -o $(PROGNAME)
	$(STRIP) ./$(PROGNAME)

install : 
	/usr/bin/install -m 755 $(PROGNAME) $(INSTALL_BINPATH)
	/usr/bin/install -m 644 $(PROGNAME).1 $(INSTALL_MANPATH)/man1
	ln -fs $(PROGNAME) $(INSTALL_BINPATH)/$(PROGNAME_LNK)
	ln -fs $(PROGNAME).1 $(INSTALL_MANPATH)/man1/$(PROGNAME_LNK).1

uninstall : 
	rm -f $(INSTALL_BINPATH)/$(PROGNAME)
	rm -f $(INSTALL_BINPATH)/$(PROGNAME_LNK)
	rm -f $(INSTALL_MANPATH)/man1/$(PROGNAME).1
	rm -f $(INSTALL_MANPATH)/man1/$(PROGNAME_LNK).1

.c.o:   
	$(CC) -c $(CFLAGS) $<

main.o:  main.c version.h ansi/*.h



version.h : FORCE	
	@echo "/* this header is automatically generated */" > version.h
	@echo "/* and recreated for each new compilation */" >> version.h
	@echo "#define PROG_NAME \"$(PROGNAME)\"" >> version.h
	@echo "#define PROG_FULL_NAME \"Welcome to Linux\"">>version.h
	@echo "#define PROG_AUTHOR \"Jean-Marc Jacquet <jm@littleigloo.org>\"">>version.h
	@echo "#define LITTLEIGLOO \"Little Igloo - http://www.littleigloo.org\"">>version.h
	@echo "#define PROG_VERSION \"$(VERSION)\"" >> version.h
	@echo "#define VERSION_DATE \"$(VERSION_DATE)\"">> version.h
# Note: cut -d' ' cannot be used, because number of spaces might differ:
# e.g. `Sun,  8 Feb 2004 20:01:07 +0100' vs `Mon, 26 May 2008 20:14:31 +0200'
	@echo "#define COMPILE_DATE \"$(strip $(shell LC_ALL=C dpkg-parsechangelog -S Date|cut --bytes=6-17))\"" >> version.h
	@echo "#define COMPILE_TIME \"$(shell LC_ALL=C dpkg-parsechangelog -S Date|cut --bytes=18-25)\"" >> version.h
	@echo "#define COMPILE_BY \"$(shell LC_ALL=C dpkg-parsechangelog -S Maintainer|sed -ne 's/^.*<\([^@]*\).*$$/\1/p')\"" >> version.h
	@echo "#define COMPILE_HOST \"$(shell LC_ALL=C dpkg-parsechangelog -S Maintainer|sed -ne 's/^.*@\([^.>]*\).*$$/\1/p')\"" >> version.h
	@echo "#define CC_VERSION \"`$(CC) -v 2>&1 | tail -n 1`\"">>version.h
	@echo "#define CODE_LINES `cat *.c *.h | grep -ch -e \"[[:alpha:]|[:punct:]]\"`">>version.h

FORCE:	

clean: dist_clean
	rm -f $(PROGNAME) *.o version.h

dist_clean:
	rm -f *~ core build/* 


###### ONLY FOR BUILDING DISTRIBUTION USAGE ##########

doc:
	@if test -x /usr/bin/pod2man; then \
	    touch distrib/$(PROGNAME).pod;\
	    pod2man distrib/$(PROGNAME).pod \
		--center="$(PROGNAME) User's Manual" \
		--release="$(PROGNAME) Version $(VERSION)" \
		> $(PROGNAME).1; \
	fi;

dist: $(PROGNAME) doc dist_clean
	rm -f build/*.tgz
	mkdir $(PROGNAME)-$(VERSION)
	mkdir $(PROGNAME)-$(VERSION)/ansi
	mkdir $(PROGNAME)-$(VERSION)/distrib
	mkdir $(PROGNAME)-$(VERSION)/screenshots
	cp screenshots/*.* $(PROGNAME)-$(VERSION)/screenshots
	cp ansi/*.* $(PROGNAME)-$(VERSION)/ansi
	cp distrib/*.* $(PROGNAME)-$(VERSION)/distrib
	cp *.c *.h *.lsm *.1\
	   AUTHORS BUGS ChangeLog COPYING INSTALL NEWS \
	   README TODO THANKS Makefile $(PROGNAME)-$(VERSION)
	tar cvf $(PROGNAME)-$(VERSION).src.tar $(PROGNAME)-$(VERSION)
	bzip2 -k $(PROGNAME)-$(VERSION).src.tar 
	mv $(PROGNAME)-$(VERSION).src.tar.bz2 build/
	gzip $(PROGNAME)-$(VERSION).src.tar 
	mv $(PROGNAME)-$(VERSION).src.tar.gz build/
	rm -f $(PROGNAME)-$(VERSION)/*.c $(PROGNAME)-$(VERSION)/*.h
	rm -Rf $(PROGNAME)-$(VERSION)/ansi
	cp $(PROGNAME) $(PROGNAME)-$(VERSION)/$(PROGNAME)
	tar cvf $(PROGNAME)-$(VERSION).bin.tar $(PROGNAME)-$(VERSION)
	bzip2 -k $(PROGNAME)-$(VERSION).bin.tar
	mv $(PROGNAME)-$(VERSION).bin.tar.bz2 build/
	gzip -9 $(PROGNAME)-$(VERSION).bin.tar
	mv $(PROGNAME)-$(VERSION).bin.tar.gz build/
	cp *.lsm build/
	rm -Rf $(PROGNAME)-$(VERSION)
	du -k build/*.*

rpm: dist 
	sed -e s,THIS_VERSION,$(VERSION), \
	    -e s,THIS_RPM_RELEASE,$(RPM_RELEASE), \
	    -e s,THIS_DATA_FILE,$(DATA_FILE), \
	    -e s,THIS_DATA_DIR,$(DATA_DIR), \
	    distrib/$(PROGNAME).spec > $(RPM_BUILDPATH)/SPECS/$(PROGNAME)-$(VERSION).spec
	cp -f build/$(PROGNAME)-$(VERSION).src.tar.gz $(RPM_BUILDPATH)/SOURCES
	#cp -f distrib/$(RPM_ICONNAME) $(RPM_BUILDPATH)/SOURCES
	rpm -ba --clean $(RPM_BUILDPATH)/SPECS/$(PROGNAME)-$(VERSION).spec
	mv $(RPM_BUILDPATH)/RPMS/i386/$(PROGNAME)-$(VERSION)-$(RPM_RELEASE)* build/
	mv $(RPM_BUILDPATH)/SRPMS/$(PROGNAME)-$(VERSION)-$(RPM_RELEASE)* build/