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