1439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
2439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin# this works in gnu make
3439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinSYSNAME:=${shell uname}
4439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinOBJTYPE:=${shell uname -m | sed 's;i.86;386;; s;/.*;;; s; ;;g'}
5439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
6439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin# this works in bsd make
7439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinSYSNAME!=uname
8439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinOBJTYPE!=uname -m | sed 's;i.86;386;; s;amd64;x864_64;; s;/.*;;; s; ;;g'
9439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
10439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin# the gnu rules will mess up bsd but not vice versa,
11439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin# hence the gnu rules come first.
12439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
13439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinRANLIB=true
14439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
15439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkininclude Make.$(SYSNAME)-$(OBJTYPE)
16439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
17439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinPREFIX=/usr/local
18439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
19439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinNUKEFILES=
20439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
21439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinTGZFILES=
22439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
23439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinCLEANFILES=
24439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
25439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinLIB=libutf.a
26439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinVERSION=2.0
27439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinPORTPLACE=devel/libutf
28439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinNAME=libutf
29439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
30439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinOFILES=\
31439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rune.$O\
32439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrcat.$O\
33439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrchr.$O\
34439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrcmp.$O\
35439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrcpy.$O\
36439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrdup.$O\
37439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrlen.$O\
38439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrecpy.$O\
39439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrncat.$O\
40439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrncmp.$O\
41439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrncpy.$O\
42439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrrchr.$O\
43439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runestrstr.$O\
44439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	runetype.$O\
45439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utfecpy.$O\
46439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utflen.$O\
47439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utfnlen.$O\
48439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utfrrune.$O\
49439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utfrune.$O\
50439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utfutf.$O\
51439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
52439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinHFILES=\
53439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	utf.h\
54439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
55439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkinall: $(LIB)
56439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
57439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkininstall: $(LIB)
58439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	mkdir -p $(PREFIX)/share/man/man3 $(PREFIX)/man/man7
59439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 isalpharune.3 $(PREFIX)/share/man/man3/isalpharune.3
60439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 utf.7 $(PREFIX)/man/man7/utf.7
61439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 rune.3 $(PREFIX)/share/man/man3/rune.3
62439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 runestrcat.3 $(PREFIX)/share/man/man3/runestrcat.3
63439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	mkdir -p $(PREFIX)/include
64439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 utf.h $(PREFIX)/include/utf.h
65439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	mkdir -p $(PREFIX)/lib
66439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	install -c -m 0644 $(LIB) $(PREFIX)/lib/$(LIB)
67439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
68439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin$(LIB): $(OFILES)
69439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	$(AR) $(ARFLAGS) $(LIB) $(OFILES)
70439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	$(RANLIB) $(LIB)
71439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
72439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinNUKEFILES+=$(LIB)
73439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin.c.$O:
74439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	$(CC) $(CFLAGS) -I../libutf -I../libfmt -I../libbio -I../libregexp -I$(PREFIX)/include $*.c
75439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
76439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin%.$O: %.c
77439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	$(CC) $(CFLAGS) -I../libutf -I../libfmt -I../libbio -I../libregexp -I$(PREFIX)/include $*.c
78439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
79439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
80439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin$(OFILES): $(HFILES)
81439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
82439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkintgz:
83439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -rf $(NAME)-$(VERSION)
84439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	mkdir $(NAME)-$(VERSION)
85439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cp Makefile Make.* README LICENSE NOTICE *.[ch137] rpm.spec bundle.ports $(TGZFILES) $(NAME)-$(VERSION)
86439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	tar cf - $(NAME)-$(VERSION) | gzip >$(NAME)-$(VERSION).tgz
87439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -rf $(NAME)-$(VERSION)
88439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
89439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkinclean:
90439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -f $(OFILES) $(LIB) $(CLEANFILES)
91439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
92439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkinnuke:
93439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -f $(OFILES) *.tgz *.rpm $(NUKEFILES)
94439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
95439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkinrpm:
96439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	make tgz
97439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cp $(NAME)-$(VERSION).tgz /usr/src/RPM/SOURCES
98439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rpm -ba rpm.spec
99439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cp /usr/src/RPM/SRPMS/$(NAME)-$(VERSION)-1.src.rpm .
100439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cp /usr/src/RPM/RPMS/i586/$(NAME)-$(VERSION)-1.i586.rpm .
101439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	scp *.rpm rsc@amsterdam.lcs.mit.edu:public_html/software
102439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
103439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander GutkinPORTDIR=/usr/ports/$(PORTPLACE)
104439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
105439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkinports:
106439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	make tgz
107439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -rf $(PORTDIR)
108439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	mkdir $(PORTDIR)
109439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cp $(NAME)-$(VERSION).tgz /usr/ports/distfiles
110439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	cat bundle.ports | (cd $(PORTDIR) && awk '$$1=="---" && $$3=="---" { ofile=$$2; next} {if(ofile) print >ofile}')
111439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	(cd $(PORTDIR); make makesum)
112439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	(cd $(PORTDIR); make)
113439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	(cd $(PORTDIR); /usr/local/bin/portlint)
114439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	rm -rf $(PORTDIR)/work
115439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	shar `find $(PORTDIR)` > ports.shar
116439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	(cd $(PORTDIR); tar cf - *) | gzip >$(NAME)-$(VERSION)-ports.tgz
117439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin	scp *.tgz rsc@amsterdam.lcs.mit.edu:public_html/software
118439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin
119439f3d1f87279a8be383ee01ef98cb9a5ca68573Alexander Gutkin.phony: all clean nuke install tgz rpm ports
120