xref: /illumos-gate/usr/src/cmd/zic/Makefile (revision d583b39bfb4e2571d3e41097c5c357ffe353ad45)
1#
2# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3# Use is subject to license terms.
4#
5
6NATIVE=native
7PROG= zic
8KSHPROG= tzselect
9NPROG= $(NATIVE)/$(PROG)
10
11# "etcetera" must be listed before "backward" because it sets up links that
12# "backward" needs.
13TZFILES= africa antarctica asia australasia etcetera europe \
14	 factory northamerica pacificnew solar87 solar88 solar89 \
15	 southamerica backward
16# Don't build the systemv timezones, but do install the source file.
17SRCFILES = $(TZFILES) systemv README
18TABFILES = continent.tab country.tab zone_sun.tab
19
20OBJS= zic.o scheck.o ialloc.o
21SRCS= $(OBJS:%.o=%.c)
22NOBJS= $(OBJS:%=$(NATIVE)/%)
23
24CLOBBERFILES= $(NOBJS) $(KSHPROG) $(NPROG) $(NATIVE)/zic.c $(NATIVE)/tzfile.h
25
26include ../Makefile.cmd
27
28NCPPFLAGS=	-I$(NATIVE)
29ROOTTZD=	$(ROOTSHLIB)/zoneinfo
30ROOTTZSRCD=	$(ROOTSHLIB)/zoneinfo/src
31ROOTTZTABD=	$(ROOTSHLIB)/zoneinfo/tab
32DIRS=  $(ROOTTZSRCD) $(ROOTTZTABD)
33
34CERRWARN +=	-_gcc=-Wno-unused-variable
35CERRWARN +=	-_gcc=-Wno-uninitialized
36
37ROOTLIBTZSRCFILES=	$(SRCFILES:%=$(ROOTTZSRCD)/%)
38ROOTLIBTZTABFILES=	$(TABFILES:%=$(ROOTTZTABD)/%)
39ROOTKSHPROG=	$(ROOTBIN)/$(KSHPROG)
40
41$(ROOTLIBTZSRCFILES):=	FILEMODE=	0644
42$(ROOTLIBTZTABFILES):=	FILEMODE=	0644
43
44#
45# Message catalog
46#
47POFILE2=tzselect.po
48POFILE3=zoneinfo.po
49POFILES3=$(TABFILES)
50TEXT_DOMAIN2=SUNW_OST_ZONEINFO
51MSGDOMAIN2=$(MSGROOT)/$(TEXT_DOMAIN2)
52
53.KEEP_STATE:
54
55all: $(PROG) $(NPROG) $(KSHPROG)
56
57$(PROG): $(OBJS)
58	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
59	$(POST_PROCESS)
60
61install: all $(DIRS) $(ROOTTZSRCD) $(ROOTTZTABD) $(ROOTUSRSBINPROG) $(ROOTLIBTZSRCFILES) $(ROOTLIBTZTABFILES) $(ROOTKSHPROG)
62	$(NPROG) -d $(ROOTTZD) $(TZFILES)
63
64$(NPROG): $(NATIVE) $(NOBJS)
65	$(NATIVECC) -o $@ $(NOBJS)
66
67#
68# XXX
69# There is a .ksh rule in Makefile.targ, but we need our custom POFILE rules.
70#
71$(KSHPROG):	$(KSHPROG).ksh
72	$(RM) $@
73	$(CAT) $(KSHPROG).ksh > $@
74	$(CHMOD) +x $@
75
76$(ROOTTZSRCD)/%: %
77	$(INS.file)
78
79$(ROOTTZTABD)/%: %
80	$(INS.file)
81
82$(DIRS):
83	$(INS.dir)
84
85$(NATIVE):
86	-@mkdir -p $@
87
88clean:
89	$(RM) $(OBJS)
90
91lint: lint_SRCS
92
93$(NOBJS): $$(@F:.o=.c)
94	$(NATIVECC) -O $(NCPPFLAGS) -c -o $@ $(@F:.o=.c)
95
96$(NATIVE)/zic.o: $(NATIVE)/tzfile.h
97
98#$(NATIVE)/scheck.o: scheck.c
99#	$(NATIVECC) -c -o $@ scheck.c
100
101#$(NATIVE)/ialloc.o: ialloc.c
102#	$(NATIVECC) -c -o $@ ialloc.c
103
104$(NATIVE)/tzfile.h: $(ROOT)/usr/include/tzfile.h
105	$(RM) $@; cp $(ROOT)/usr/include/tzfile.h $@
106
107#
108# From ../Makefile.targ
109#
110clobber: clean
111	-$(RM) $(PROG) $(CLOBBERFILES)
112
113lint_PROG:
114	$(LINT.c) $(PROG).c $(LDLIBS)
115
116lint_SRCS:
117	$(LINT.c) $(SRCS) $(LDLIBS)
118
119#
120# For message catalogue files
121#
122_msg: $(MSGDOMAIN) $(POFILE) $(POFILE2) $(MSGDOMAIN2) $(POFILE3)
123	$(RM) $(MSGDOMAIN)/$(POFILE)
124	$(CP) $(POFILE) $(MSGDOMAIN)
125	$(RM) $(MSGDOMAIN)/$(POFILE2)
126	$(CP) $(POFILE2) $(MSGDOMAIN)
127	$(RM) $(MSGDOMAIN2)/$(POFILE3)
128	$(CP) $(POFILE3) $(MSGDOMAIN2)/$(POFILE3)
129
130$(MSGDOMAIN) $(DCMSGDOMAIN) $(MSGDOMAIN2):
131	$(INS.dir)
132
133$(POFILE3):	$(POFILES3)
134	$(RM) $@
135	@/bin/sh ./do_pofile.sh > $@
136
137