Home | History | Annotate | Download | only in zic
      1 #
      2 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
      3 # Use is subject to license terms.
      4 #
      5 
      6 NATIVE=native
      7 PROG= zic
      8 KSHPROG= tzselect
      9 NPROG= $(NATIVE)/$(PROG)
     10 
     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
     19 
     20 OBJS= zic.o scheck.o ialloc.o
     21 SRCS= $(OBJS:%.o=%.c)
     22 NOBJS= $(OBJS:%=$(NATIVE)/%)
     23 
     24 CLOBBERFILES= $(NOBJS) $(KSHPROG) $(NPROG) $(NATIVE)/zic.c $(NATIVE)/tzfile.h
     25 
     26 include ../Makefile.cmd
     27 
     28 NCPPFLAGS=	-I$(NATIVE)
     29 ROOTTZD=	$(ROOTSHLIB)/zoneinfo
     30 ROOTTZSRCD=	$(ROOTSHLIB)/zoneinfo/src
     31 ROOTTZTABD=	$(ROOTSHLIB)/zoneinfo/tab
     32 DIRS=  $(ROOTTZSRCD) $(ROOTTZTABD)
     33 
     34 ROOTLIBTZSRCFILES=	$(SRCFILES:%=$(ROOTTZSRCD)/%)
     35 ROOTLIBTZTABFILES=	$(TABFILES:%=$(ROOTTZTABD)/%)
     36 ROOTKSHPROG=	$(ROOTBIN)/$(KSHPROG)
     37 
     38 $(ROOTLIBTZSRCFILES):=	FILEMODE=	0644
     39 $(ROOTLIBTZTABFILES):=	FILEMODE=	0644
     40 
     41 #
     42 # Message catalog
     43 #
     44 POFILE2=tzselect.po
     45 POFILE3=zoneinfo.po
     46 POFILES3=$(TABFILES)
     47 TEXT_DOMAIN2=SUNW_OST_ZONEINFO
     48 MSGDOMAIN2=$(MSGROOT)/$(TEXT_DOMAIN2)
     49 
     50 .KEEP_STATE:
     51 
     52 all: $(PROG) $(NPROG) $(KSHPROG)
     53 
     54 $(PROG): $(OBJS)
     55 	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
     56 	$(POST_PROCESS)
     57 
     58 install: all $(DIRS) $(ROOTTZSRCD) $(ROOTTZTABD) $(ROOTUSRSBINPROG) $(ROOTLIBTZSRCFILES) $(ROOTLIBTZTABFILES) $(ROOTKSHPROG)
     59 	$(NPROG) -d $(ROOTTZD) $(TZFILES)
     60 
     61 $(NPROG): $(NATIVE) $(NOBJS)
     62 	$(NATIVECC) -o $@ $(NOBJS)
     63 
     64 #
     65 # XXX
     66 # There is a .ksh rule in Makefile.targ, but we need our custom POFILE rules.
     67 #
     68 $(KSHPROG):	$(KSHPROG).ksh
     69 	$(RM) $@
     70 	$(CAT) $(KSHPROG).ksh > $@
     71 	$(CHMOD) +x $@
     72 
     73 $(ROOTTZSRCD)/%: %
     74 	$(INS.file)
     75 
     76 $(ROOTTZTABD)/%: %
     77 	$(INS.file)
     78 
     79 $(DIRS):
     80 	$(INS.dir)
     81 
     82 $(NATIVE):
     83 	-@mkdir -p $@
     84 
     85 clean:
     86 	$(RM) $(OBJS)
     87 
     88 lint: lint_SRCS
     89 
     90 $(NOBJS): $$(@F:.o=.c)
     91 	$(NATIVECC) -O $(NCPPFLAGS) -c -o $@ $(@F:.o=.c)
     92 
     93 $(NATIVE)/zic.o: $(NATIVE)/tzfile.h
     94 
     95 #$(NATIVE)/scheck.o: scheck.c
     96 #	$(NATIVECC) -c -o $@ scheck.c
     97 
     98 #$(NATIVE)/ialloc.o: ialloc.c
     99 #	$(NATIVECC) -c -o $@ ialloc.c
    100 
    101 $(NATIVE)/tzfile.h: $(ROOT)/usr/include/tzfile.h
    102 	$(RM) $@; cp $(ROOT)/usr/include/tzfile.h $@
    103 
    104 #
    105 # From ../Makefile.targ
    106 #
    107 clobber: clean
    108 	-$(RM) $(PROG) $(CLOBBERFILES)
    109 
    110 lint_PROG:
    111 	$(LINT.c) $(PROG).c $(LDLIBS)
    112 
    113 lint_SRCS:
    114 	$(LINT.c) $(SRCS) $(LDLIBS)
    115 
    116 #
    117 # For message catalogue files
    118 #
    119 _msg: $(MSGDOMAIN) $(POFILE) $(POFILE2) $(MSGDOMAIN2) $(POFILE3)
    120 	$(RM) $(MSGDOMAIN)/$(POFILE)
    121 	$(CP) $(POFILE) $(MSGDOMAIN)
    122 	$(RM) $(MSGDOMAIN)/$(POFILE2)
    123 	$(CP) $(POFILE2) $(MSGDOMAIN)
    124 	$(RM) $(MSGDOMAIN2)/$(POFILE3)
    125 	$(CP) $(POFILE3) $(MSGDOMAIN2)/$(POFILE3)
    126 
    127 $(MSGDOMAIN) $(DCMSGDOMAIN) $(MSGDOMAIN2):
    128 	$(INS.dir)
    129 
    130 $(POFILE3):	$(POFILES3)
    131 	$(RM) $@
    132 	@/bin/sh ./do_pofile.sh > $@
    133  
    134