6648 illumos build should be explicit about C standards
[unleashed.git] / usr / src / cmd / zic / Makefile
blob5984f9a6893a1bcfe377f689bca48da0c3b5851c
2 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
3 # Use is subject to license terms.
6 NATIVE=native
7 PROG= zic
8 KSHPROG= tzselect
9 NPROG= $(NATIVE)/$(PROG)
11 # "etcetera" must be listed before "backward" because it sets up links that
12 # "backward" needs.
13 TZFILES= 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.
17 SRCFILES = $(TZFILES) systemv README
18 TABFILES = continent.tab country.tab zone_sun.tab
20 OBJS= zic.o scheck.o ialloc.o
21 SRCS= $(OBJS:%.o=%.c)
22 NOBJS= $(OBJS:%=$(NATIVE)/%)
24 CLOBBERFILES= $(NOBJS) $(KSHPROG) $(NPROG) $(NATIVE)/zic.c $(NATIVE)/tzfile.h
26 include ../Makefile.cmd
28 NCPPFLAGS= -I$(NATIVE)
29 ROOTTZD= $(ROOTSHLIB)/zoneinfo
30 ROOTTZSRCD= $(ROOTSHLIB)/zoneinfo/src
31 ROOTTZTABD= $(ROOTSHLIB)/zoneinfo/tab
32 DIRS= $(ROOTTZSRCD) $(ROOTTZTABD)
34 CERRWARN += -_gcc=-Wno-unused-variable
35 CERRWARN += -_gcc=-Wno-uninitialized
37 ROOTLIBTZSRCFILES= $(SRCFILES:%=$(ROOTTZSRCD)/%)
38 ROOTLIBTZTABFILES= $(TABFILES:%=$(ROOTTZTABD)/%)
39 ROOTKSHPROG= $(ROOTBIN)/$(KSHPROG)
41 $(ROOTLIBTZSRCFILES):= FILEMODE= 0644
42 $(ROOTLIBTZTABFILES):= FILEMODE= 0644
45 # Message catalog
47 POFILE2=tzselect.po
48 POFILE3=zoneinfo.po
49 POFILES3=$(TABFILES)
50 TEXT_DOMAIN2=SUNW_OST_ZONEINFO
51 MSGDOMAIN2=$(MSGROOT)/$(TEXT_DOMAIN2)
53 # NB: $(POFILE2) is under SCM.
54 CLOBBERFILES += $(POFILE) $(POFILE3)
56 .KEEP_STATE:
58 all: $(PROG) $(NPROG) $(KSHPROG)
60 $(PROG): $(OBJS)
61 $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
62 $(POST_PROCESS)
64 install: all $(DIRS) $(ROOTTZSRCD) $(ROOTTZTABD) $(ROOTUSRSBINPROG) \
65 $(ROOTLIBTZSRCFILES) $(ROOTLIBTZTABFILES) $(ROOTKSHPROG)
66 $(NPROG) -d $(ROOTTZD) $(TZFILES)
68 $(NPROG): $(NATIVE) $(NOBJS)
69 $(NATIVECC) $(NATIVE_CFLAGS) -o $@ $(NOBJS)
72 # XXX
73 # There is a .ksh rule in Makefile.targ, but we need our custom POFILE rules.
75 $(KSHPROG): $(KSHPROG).ksh
76 $(RM) $@
77 $(CAT) $(KSHPROG).ksh > $@
78 $(CHMOD) +x $@
80 $(ROOTTZSRCD)/%: %
81 $(INS.file)
83 $(ROOTTZTABD)/%: %
84 $(INS.file)
86 $(DIRS):
87 $(INS.dir)
89 $(NATIVE):
90 -@mkdir -p $@
92 clean:
93 $(RM) $(OBJS)
95 lint: lint_SRCS
97 $(NOBJS): $$(@F:.o=.c)
98 $(NATIVECC) -O $(NATIVE_CFLAGS) $(NCPPFLAGS) -c -o $@ $(@F:.o=.c)
100 $(NATIVE)/zic.o: $(NATIVE)/tzfile.h
102 $(NATIVE)/tzfile.h: $(ROOT)/usr/include/tzfile.h
103 $(RM) $@; cp $(ROOT)/usr/include/tzfile.h $@
106 # From ../Makefile.targ
108 clobber: clean
109 -$(RM) $(PROG) $(CLOBBERFILES)
111 lint_PROG:
112 $(LINT.c) $(PROG).c $(LDLIBS)
114 lint_SRCS:
115 $(LINT.c) $(SRCS) $(LDLIBS)
118 # For message catalogue files
120 _msg: $(MSGDOMAIN) $(POFILE) $(POFILE2) $(MSGDOMAIN2) $(POFILE3)
121 $(RM) $(MSGDOMAIN)/$(POFILE)
122 $(CP) $(POFILE) $(MSGDOMAIN)
123 $(RM) $(MSGDOMAIN)/$(POFILE2)
124 $(CP) $(POFILE2) $(MSGDOMAIN)
125 $(RM) $(MSGDOMAIN2)/$(POFILE3)
126 $(CP) $(POFILE3) $(MSGDOMAIN2)/$(POFILE3)
128 $(MSGDOMAIN) $(DCMSGDOMAIN) $(MSGDOMAIN2):
129 $(INS.dir)
131 $(POFILE3): $(POFILES3)
132 $(RM) $@
133 @/bin/sh ./do_pofile.sh > $@