Home | History | Annotate | Download | only in libshell
      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 
     22 #
     23 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     24 # Use is subject to license terms.
     25 #
     26 
     27 SHELL=/usr/bin/ksh93
     28 
     29 LIBRARY=	libshell.a
     30 VERS=		.1
     31 
     32 OBJECTS= \
     33 	bltins/alarm.o \
     34 	bltins/cd_pwd.o \
     35 	bltins/cflow.o \
     36 	bltins/enum.o \
     37 	bltins/getopts.o \
     38 	bltins/hist.o \
     39 	bltins/misc.o \
     40 	bltins/poll_solaris.o \
     41 	bltins/print.o \
     42 	bltins/read.o \
     43 	bltins/regress.o \
     44 	bltins/shiocmd_solaris.o \
     45 	bltins/sleep.o \
     46 	bltins/test.o \
     47 	bltins/trap.o \
     48 	bltins/typeset.o \
     49 	bltins/ulimit.o \
     50 	bltins/umask.o \
     51 	bltins/whence.o \
     52 	data/aliases.o \
     53 	data/builtins.o \
     54 	data/keywords.o \
     55 	data/lexstates.o \
     56 	data/limits.o \
     57 	data/msg.o \
     58 	data/options.o \
     59 	data/signals.o \
     60 	data/strdata.o \
     61 	data/testops.o \
     62 	data/variables.o \
     63 	edit/completion.o \
     64 	edit/edit.o \
     65 	edit/emacs.o \
     66 	edit/hexpand.o \
     67 	edit/history.o \
     68 	edit/vi.o \
     69 	sh/args.o \
     70 	sh/arith.o \
     71 	sh/array.o \
     72 	sh/defs.o \
     73 	sh/deparse.o \
     74 	sh/expand.o \
     75 	sh/fault.o \
     76 	sh/fcin.o \
     77 	sh/init.o \
     78 	sh/io.o \
     79 	sh/jobs.o \
     80 	sh/lex.o \
     81 	sh/macro.o \
     82 	sh/main.o \
     83 	sh/name.o \
     84 	sh/nvdisc.o \
     85 	sh/nvtree.o \
     86 	sh/nvtype.o \
     87 	sh/parse.o \
     88 	sh/path.o \
     89 	sh/streval.o \
     90 	sh/string.o \
     91 	sh/subshell.o \
     92 	sh/tdump.o \
     93 	sh/timers.o \
     94 	sh/trestore.o \
     95 	sh/waitevent.o \
     96 	sh/xec.o
     97 
     98 # We are storing the object files into subdirs avoid the
     99 # confusion with having too many object files in the toplevel pics/
    100 # directory (this matches the way how the original AST build system
    101 # deals with this "logistic" issue) - the rules below ensure that
    102 # the destination directory is available.
    103 OBJDIRS =  \
    104 	bltins \
    105 	data \
    106 	edit \
    107 	sh
    108 PICSDIRS= $(OBJDIRS:%=pics/%)
    109 mkpicdirs:
    110 	@mkdir -p $(PICSDIRS)
    111 	
    112 # Specify the MACH we currently use to build and test ksh
    113 LIBSHELLMACH= $(TARGETMACH)
    114 LIBSHELLBASE=..
    115 	
    116 include ../../Makefile.astmsg
    117 
    118 include ../../Makefile.lib
    119 
    120 # mapfile-vers does not live with the sources in in common/ to make
    121 # automated code updates easier.
    122 MAPFILES=       ../mapfile-vers
    123 
    124 # Set common AST build flags (e.g. C99/XPG6, needed to support the math stuff)
    125 include ../../../Makefile.ast
    126 
    127 LIBS =		$(DYNLIB) $(LINTLIB)
    128 
    129 LDLIBS += \
    130 	-lcmd \
    131 	-ldll \
    132 	-last \
    133 	-lsocket \
    134 	-lsecdb \
    135 	-lm \
    136 	-lc
    137 
    138 $(LINTLIB) :=	SRCS = $(SRCDIR)/$(LINTSRC)
    139 
    140 SRCDIR =	../common
    141 
    142 # 1. Make sure that the -D/-U defines in CPPFLAGS below are in sync
    143 # with usr/src/cmd/ksh/Makefile.com
    144 # 2. We use "=" here since using $(CPPFLAGS.master) is very tricky in our
    145 # case - it MUST come as the last element but future changes in -D options
    146 # may then cause silent breakage in the AST sources because the last -D
    147 # option specified overrides previous -D options so we prefer the current
    148 # way to explicitly list each single flag.
    149 CPPFLAGS = \
    150 	$(DTEXTDOM) $(DTS_ERRNO) \
    151 	$(LIBSHELLCPPFLAGS)
    152 
    153 CFLAGS += \
    154 	$(ASTCFLAGS)
    155 CFLAGS64 += \
    156 	$(ASTCFLAGS64)
    157 
    158 pics/sh/macro.o		:= CERRWARN += -erroff=E_NO_IMPLICIT_DECL_ALLOWED
    159 pics/sh/nvdisc.o	:= CERRWARN += -erroff=E_END_OF_LOOP_CODE_NOT_REACHED
    160 
    161 .KEEP_STATE:
    162 
    163 all: mkpicdirs .WAIT $(LIBS)
    164 
    165 #
    166 # libshell is not lint-clean yet; fake up a target.  (You can use
    167 # "make lintcheck" to actually run lint; please send all lint fixes
    168 # upstream (to AT&T) so the next update will pull them into ON.)
    169 #
    170 lint:
    171 	@ print "usr/src/lib/libshell is not lint-clean: skipping"
    172 
    173 include ../../Makefile.targ
    174