1# $MirOS: src/gnu/usr.bin/perl/Makefile.bsd-wrapper,v 1.35 2014/03/13 03:03:18 tg Exp $ 2# $OpenBSD: Makefile.bsd-wrapper,v 1.75 2007/11/26 11:12:29 espie Exp $ 3# 4# Build wrapper for Perl 5.8.8 5# 6 7.include <bsd.own.mk> 8 9TARGET_MACHINE_ARCH?= $(MACHINE_ARCH) 10 11# To build a threaded perl, uncomment this. Not stable on all platforms... 12#THREADED_PERL= Yes 13THREADED_PERL?= No 14 15# Perl builds with -fno-strict-aliasing, we want libperl to do the same 16COPTS+= -fno-strict-aliasing 17COPTS+= -fno-delete-null-pointer-checks 18 19# Arguments passed to Configure... 20.if ${THREADED_PERL:L} == "yes" 21CONFIGURE_ARGS+=-Dusethreads 22CFLAGS+= -pthread 23.endif 24 25XFLAGS= ${CFLAGS} -Werror-maybe-reset 26CONFIGURE_ARGS+=-dsE -D${OSname}_distribution=defined \ 27 -Doptimize=${XFLAGS:N-g*:M*:Q} 28 29.if ${NOPIC:L} != "no" 30FLAGS_TO_PASS= USEDL=n 31.else 32FLAGS_TO_PASS= USEDL=y 33.endif 34FLAGS_TO_PASS+= CC=${CC:Q} CPP=${CPP:Q} CFLAGS=${XFLAGS:M*:Q} SHELL=${SHELL:Q} 35FLAGS_TO_PASS+= PATH=/bin:/usr/bin:/sbin:/usr/sbin 36 37# Our lndir is hacked; specify a full path to avoid potential conflicts 38# with the one installed with X11. 39LNDIR= /usr/bin/lndir 40 41H2PH= /usr/bin/h2ph 42 43LIB= perl 44DPADD+= ${LIBM} ${LIBUTIL} 45LDADD+= -lm -lutil 46 47SRCS= perl.c gv.c toke.c perly.c op.c pad.c regcomp.c dump.c util.c mg.c \ 48 reentr.c hv.c av.c run.c pp_hot.c sv.c pp.c scope.c pp_ctl.c pp_sys.c \ 49 doop.c doio.c regexec.c utf8.c taint.c deb.c universal.c xsutils.c \ 50 globals.c perlio.c perlapi.c numeric.c locale.c pp_pack.c pp_sort.c 51 52CPPFLAGS+= -DPERL_CORE -DPERL_RANDOM_DEVICE=\"/dev/arandom\" -I. 53 54# MirPorts Framework support 55CPPFLAGS+= -DAPPLLIB_EXP=\"/usr/mpkg/libdata/perl5:/usr/mpkg/libdata/perl5/site_perl\" 56 57.if defined(INSTALL_STRIP) && ${INSTALL_STRIP} == "-s" 58STRIPFLAGS= -s 59.endif 60 61GEN_AFTER= config.h cflags makeaperl makedepend makedir \ 62 myconfig writemain Makefile Policy.sh pod/Makefile \ 63 x2p/Makefile x2p/cflags 64 65GENERATED= config.sh ${GEN_AFTER} 66 67${GEN_AFTER}: config.sh 68 69CLEANFILES= config.sh Policy.sh ${MANALL} ${PSALL} ${MANSRCALL} stamp-mansrc.build 70 71.if !exists(${.OBJDIR}/config.over) 72${.OBJDIR}/config.over: ${.CURDIR}/config.over 73 ${LNDIR} -s -e obj -e obj.${MACHINE_ARCH} -e Makefile.bsd-wrapper -e Makefile.bsd-wrapper1 ${.CURDIR} 74.endif 75 76all: perl.build man.build 77 78 79man.build: perl.build 80 cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 $@ 81 82beforedepend: config.sh config.h Makefile makedepend x2p/Makefile writemain 83 cd ${.OBJDIR} && exec ${MAKE} depend 84 85perl.build: perl.lib 86 cd ${.OBJDIR} && ${FLAGS_TO_PASS} exec ${MAKE} 87 88config.sh: ${.OBJDIR}/config.over 89 cd ${.OBJDIR} && GCC_NO_WERROR=1 ${FLAGS_TO_PASS} \ 90 exec ${SHELL} Configure ${CONFIGURE_ARGS} 91 92Makefile cflags makeaperl makedepend makedir myconfig writemain: 93 cd ${.OBJDIR} && ${FLAGS_TO_PASS} exec ${SHELL} $@.SH 94 95Policy.sh: 96 cd ${.OBJDIR} && ${FLAGS_TO_PASS} exec ${SHELL} Policy_sh.SH 97 98config.h: 99 cd ${.OBJDIR} && ${FLAGS_TO_PASS} exec ${SHELL} config_h.SH 100 101pod/Makefile: 102 cd ${.OBJDIR}/pod && ${FLAGS_TO_PASS} exec ${SHELL} Makefile.SH 103 104x2p/Makefile: 105 cd ${.OBJDIR}/x2p && ${FLAGS_TO_PASS} exec ${SHELL} Makefile.SH 106 107x2p/cflags: 108 cd ${.OBJDIR}/x2p && ${FLAGS_TO_PASS} exec ${SHELL} cflags.SH 109 110# Never try to regenerate perly.c or perly.h 111perly.c perly.h: perly.y 112 -@true 113 114install: install.lib install.perl maninstall 115 -chmod -R a+rX ${DESTDIR}/usr/libdata/perl5 116 117install.perl: 118 cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \ 119 STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o NOLIBINSTALL=1 \ 120 LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl \ 121 --destdir=${DESTDIR} -o STRIPFLAGS=${STRIPFLAGS} 122 printf '%s\n%s\n%s\nwq\n' '/^optimize=/g/-Werror-maybe-reset/s///' \ 123 '/^optimize=/g/-Werror/s///' "/^optimize=/g/ *'/s//'/" | \ 124 ed -s ${DESTDIR}$$(perl -e 'use Config; print \ 125 $$Config{installarchlib};')/Config_heavy.pl 126 127.if exists(/usr/lib/libposixtz.so) 128TEST_ENV+= LD_PRELOAD=/usr/lib/libposixtz.so 129.endif 130 131test: 132 -@cd "$$(realpath .)"; \ 133 if [ -e Makefile ]; then ${TEST_ENV} ${MAKE} test; fi 134 135clean: 136 -@if [ -e Makefile ]; then ${MAKE} realclean; fi 137 138cleandir: 139 -@if [ ${.CURDIR} != ${.OBJDIR} ]; then \ 140 rm -rf *; \ 141 else \ 142 test -e Makefile && ${MAKE} distclean; \ 143 rm -f ${CLEANFILES}; \ 144 fi 145 @cd ${.CURDIR} && ${MAKE} -f Makefile.bsd-wrapper1 cleandir 146 147maninstall: 148.if defined(NOMAN) && ${NOMAN:L} != "no" 149 @echo NOMAN is set 150.else 151 @cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 maninstall 152.endif 153 154.include <bsd.lib.mk> 155 156# These have to come after the inclusion of <bsd.lib.mk> 157 158# Need -fPIC, not -fpic on sparc 159.if ($(TARGET_MACHINE_ARCH) == sparc) 160PICFLAG= -fPIC 161.endif 162 163perl.lib: ${GENERATED} .WAIT ${_LIBS} 164 165install.lib: 166 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 167 lib${LIB}.a ${DESTDIR}${LIBDIR}/ 168.if ${NOPIC:L} == "no" 169. ifdef SHLIB_SONAME 170 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ 171 ${SHLIB_SONAME} ${DESTDIR}${LIBDIR}/${SHLIB_SONAME}~ 172. if !defined(MKC_DEBG) || ${MKC_DEBG:L} == "no" 173 ${STRIP} ${_SODISCARD} ${DESTDIR}${LIBDIR}/${SHLIB_SONAME}~ 174. endif 175 cd ${DESTDIR}${LIBDIR} && \ 176 chmod ${LIBMODE} ${SHLIB_SONAME}~ && \ 177 mv -f ${SHLIB_SONAME}~ ${SHLIB_SONAME} 178. endif 179 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 180 lib${LIB}_pic.a ${DESTDIR}${LIBDIR}/ 181.endif 182 183.PHONY: perl.lib install.lib perl.build install.perl man.build mansrc.build 184