1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  22 # Use is subject to license terms.
  23 #
  24 
  25 $(NOT_NATIVE)NATIVE_BUILD = $(POUND_SIGN)
  26 
  27 ITM     = geniconvtbl.so
  28 PROG    = geniconvtbl
  29 
  30 SRCSH1  = iconv_tm.h hash.h
  31 SRCCH1  = itmcomp.h itm_util.h maptype.h
  32 SRCSC1  = itmcomp.c assemble.c disassemble.c itm_util.c
  33 SRCY1   = itm_comp.y
  34 SRCL1   = itm_comp.l
  35 SRCI1   = geniconvtbl.c
  36 
  37 
  38 YTABC   = y.tab.c
  39 YTABH   = y.tab.h
  40 LEXYY   = lex.yy.c
  41 YOUT    = y.output
  42 MAPFILE = ../mapfile
  43 
  44 
  45 
  46 SRCSH   = $(SRCSH1:%.h=../%.h)
  47 SRCCH   = $(SRCCH1:%.h=../%.h)
  48 SRCSC   = $(SRCSC1:%.c=../%.c)
  49 SRCI    = $(SRCI1:%.c=../%.c)
  50 SRCY    = $(SRCY1:%.y=../%.y)
  51 SRCL    = $(SRCL1:%.l=../%.l)
  52 
  53 SRCYC   = $(SRCY:%.y=%.c)
  54 SRCLC   = $(SRCL:%.l=%.c)
  55 
  56 SRCS    = $(SRCSC) $(YTABC) $(LEXYY)
  57 HDRS    = $(SRCCH1) $(ERNOSTRH)
  58 
  59 
  60 
  61 SED     = sed
  62 LEXSED  = ../lex.sed
  63 YACCSED = ../yacc.sed
  64 
  65 
  66 
  67 # include ../../../lib/Makefile.lib
  68 include ../../Makefile.cmd
  69 
  70 
  71 ROOTDIRS32=     $(ROOTLIB)/iconv
  72 ROOTDIRS64=     $(ROOTLIB)/iconv/$(MACH64)
  73 ROOTITM32 =     $(ROOTDIRS32)/$(ITM)
  74 ROOTITM64 =     $(ROOTDIRS64)/$(ITM)
  75 
  76 #
  77 # definition for some useful target like clean,
  78 OBJS    = $(SRCSC1:%.c=%.o) $(YTABC:.c=.o) $(LEXYY:.c=.o)
  79 
  80 CHECKHDRS = $(HDRS%.h=%.check)
  81 
  82 CLOBBERFILES=   $(ITM) $(SRCYC)
  83 CLEANFILES =    $(OBJS) $(YTABC) $(YTABH) $(LEXYY) $(YOUT) \
  84                 $(POFILES) $(POFILE)
  85 
  86 CPPFLAGS        += -I. -I..
  87 CERRWARN        += -_gcc=-Wno-uninitialized
  88 CERRWARN        += -_gcc=-Wno-unused-label
  89 CERRWARN        += -_gcc=-Wno-switch
  90 CERRWARN        += -_gcc=-Wno-unused-variable
  91 CERRWARN        += -_gcc=-Wno-implicit-function-declaration
  92 YFLAGS          += -d -v
  93 CFLAGS          += -D_FILE_OFFSET_BITS=64
  94 
  95 $(ITM) :=       CFLAGS += $(GSHARED) $(C_PICFLAGS) $(ZTEXT) -h $@
  96 $(ITM) :=       CPPFLAGS += -D_REENTRANT
  97 $(ITM) :=       sparc_CFLAGS += -xregs=no%appl
  98 $(ITM) :=       sparcv9_CFLAGS += -xregs=no%appl
  99 
 100 LDLIBS += -lgen
 101 
 102 MY_NATIVE_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -I. -I..
 103 MY_NATIVE_LDFLAGS = $(MAPFILE.NES:%=-M%) $(MAPFILE.PGA:%=-M%) \
 104                         $(MAPFILE.NED:%=-M%) -Bdirect \
 105                         -zassert-deflib=libgen.so \
 106                         -zassert-deflib=libc.so
 107 MY_NATIVE_LDLIBS = -lgen
 108 
 109 #
 110 # Message catalog
 111 #
 112 POFILES= $(SRCSC1:%.c=%.po) $(SRCI1:%.c=%.po) \
 113                 $(SRCY1:%.y=%.po) $(SRCL1:%.l=%.po)
 114 
 115 POFILE= geniconvtbl_.po
 116 
 117 
 118 
 119 
 120 
 121 .KEEP_STATE:
 122 
 123 .PARALLEL: $(ITM) $(OBJS)
 124 
 125 $(PROG): $(OBJS)
 126         $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
 127         $(POST_PROCESS)
 128 
 129 $(ITM): $(SRCI)
 130         $(CC) $(CFLAGS) $(CPPFLAGS) -M$(MAPFILE) -o $@ $(SRCI) $(LDLIBS)
 131         $(POST_PROCESS_SO)
 132 
 133 $(YTABC) $(YTABH): $(SRCY)
 134         $(YACC) $(YFLAGS) $(SRCY)
 135         @ $(MV) $(YTABC) $(YTABC)~
 136         @ $(SED) -f $(YACCSED) $(YTABC)~ > $(YTABC)
 137         @ $(RM) $(YTABC)~
 138 
 139 $(LEXYY): $(SRCL) $(YTABH)
 140         $(LEX) -t $(SRCL) | $(SED) -f $(LEXSED) > $(LEXYY)
 141 
 142 
 143 $(POFILE):  .WAIT $(POFILES)
 144         $(RM) $@
 145         $(CAT) $(POFILES) >$@
 146 
 147 $(POFILES): $(SRCSC) $(SRCI) $(SRCY) $(SRCL)
 148 
 149 %.po:   ../%.c
 150         $(COMPILE.cpp) $<  > $<.i
 151         $(BUILD.po)
 152 
 153 
 154 lint : lint_SRCS1  lint_SRCS2
 155 
 156 
 157 lint_SRCS1: $(SRCS)
 158         $(LINT.c) $(SRCS) $(LDLIBS)
 159 
 160 lint_SRCS2: $(SRCI)
 161         $(LINT.c) $(SRCI) $(LDLIBS)
 162 
 163 
 164 
 165 hdrchk: $(HDRCHECKS)
 166 
 167 cstyle: $(SRCS)
 168         $(DOT_C_CHECK)
 169 
 170 clean:
 171         $(RM) $(CLEANFILES)
 172 
 173 debug:
 174         $(MAKE) all COPTFLAG='' COPTFLAG64='' CFLAGS='-g -DDEBUG'
 175 
 176 
 177 %.o:    %.c
 178         $(COMPILE.c) $<
 179 
 180 %.o:    ../%.c
 181         $(COMPILE.c) $<
 182 
 183 
 184 
 185 # install rule
 186 #
 187 $(ROOTDIRS32)/%: $(ROOTDIRS32) %
 188         -$(INS.file)
 189 
 190 $(ROOTDIRS64)/%: $(ROOTDIRS64) %
 191         -$(INS.file)
 192 
 193 $(ROOTDIRS32): $(ROOTLIB)
 194         -$(INS.dir)
 195 
 196 $(ROOTDIRS64): $(ROOTDIRS32)
 197         -$(INS.dir)
 198 
 199 $(ROOTLIB) $(ROOTBIN):
 200         -$(INS.dir)
 201 
 202 include ../../Makefile.targ
 203