Makefile revision 5506
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../make-rules/shared-macros.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindownload setup prep build install publish \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinvalidate: links pkglint time-$(MACH32).so time-$(MACH64).so
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# generate wrappers for parfait. we need to generate them
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# with the correct compiler variables from the common makefiles because
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# some things reset the environment which causes lovely infinite
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# loops
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlinks:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @$(MKDIR) $(PARFAIT_TOOLS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @for i in cc CC gcc g++ ld ; do \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "#!/bin/ksh" > $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "IFS=" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "export PARFAIT_NATIVEGCC=$(GCC_ROOT)/bin/gcc" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "export PARFAIT_NATIVEGXX=$(GCC_ROOT)/bin/g++" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "export PARFAIT_NATIVELD=/usr/bin/ld" >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "exec" $(PARFAIT_ROOT)/$(MACH)/parfait-$$i '$$*' >> $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein chmod +x $(PARFAIT_TOOLS)/$$i ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinpkglint:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @rm -f pkglint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @sed -e "s,WS_TOP_XXX,$(WS_TOP)/$(MACH)," \
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews < pkglint.sh \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein > pkglint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @chmod +x pkglint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintime-$(MACH64).o: BITS=64
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintime-$(MACH32).o time-$(MACH64).o: CFLAGS += -Kpic
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintime-$(MACH32).o time-$(MACH64).o: time.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @$(CC) $(CFLAGS) -c -o $@ $<
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrewstime-%.so: time-%.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @$(LD) -G -o $@ $<
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrewsclean:
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews @$(RM) time-*.o time*.bc
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews @$(RM) pkglint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrewsclobber: clean
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews @$(RM) time-*.so python/pkglint/*.pyc
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews @$(RM) -r $(PARFAIT_TOOLS) $(MACH)
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein