1# $OpenBSD: Makefile.bsd-wrapper,v 1.79 2009/10/12 18:24:20 millert Exp $ 2# 3# Build wrapper for Perl 5.10.0 4# 5 6# For ``NOMAN'' and ``USE_GCC3'' 7.include <bsd.own.mk> 8 9# There is no point in building a profiled libperl that is never used. 10NOPROFILE= 11 12TARGET_MACHINE_ARCH?= $(MACHINE_ARCH) 13# To build a threaded perl, uncomment this. Not stable on all platforms... 14#THREADED_PERL=true 15 16# Perl builds with -fno-strict-aliasing, we want libperl to do the same 17CFLAGS+= -fno-strict-aliasing 18.if ${USE_GCC3:L} == "yes" 19CFLAGS+= -fno-delete-null-pointer-checks 20.endif 21 22CONFIGURE_ARGS= -dsE -Dopenbsd_distribution=defined 23.if defined(THREADED_PERL) && ($(THREADED_PERL) == true) 24CONFIGURE_ARGS+= -Dusethreads 25CFLAGS+= -pthread 26.endif 27.if !exists(${.OBJDIR}/config.over) 28CONFIGURE_ARGS+= -Dmksymlinks 29.endif 30 31H2PH= /usr/bin/h2ph 32 33LIB= perl 34 35SRCS1= gv.c toke.c perly.c pad.c regcomp.c dump.c util.c mg.c reentr.c \ 36 mro.c hv.c av.c run.c pp_hot.c sv.c pp.c scope.c pp_ctl.c \ 37 pp_sys.c doop.c doio.c regexec.c utf8.c taint.c deb.c universal.c \ 38 xsutils.c globals.c perlio.c perlapi.c numeric.c mathoms.c locale.c \ 39 pp_pack.c pp_sort.c 40SRCS= ${SRCS1} op.c perl.c 41 42# We must not try to mkdep DynaLoader.c as it requires miniperl 43OBJS+= DynaLoader.o 44 45# For generating DynaLoader.c 46.if defined(NOPIC) 47DYNALOADER=ext/DynaLoader/dl_none.xs 48.else 49DYNALOADER=ext/DynaLoader/dl_dlopen.xs 50.endif 51 52# Arguments passed to Configure... 53 54CPPFLAGS+= -DPERL_CORE -DPERL_RANDOM_DEVICE=\"/dev/arandom\" -I. 55 56.if defined (INSTALL_STRIP) && ${INSTALL_STRIP} == "-s" 57STRIPFLAGS='-s' 58.endif 59 60GEN_AFTER= config.h uudmap.h cflags makeaperl makedepend makedir \ 61 myconfig writemain Makefile Policy.sh pod/Makefile \ 62 x2p/Makefile x2p/cflags 63 64GENERATED= config.sh ${GEN_AFTER} 65 66${GEN_AFTER}: config.sh 67 68CLEANFILES= config.sh Policy.sh ${MANALL} ${PSALL} ${MANSRCALL} stamp-mansrc.build 69 70all: perl.build man.build 71 72 73man.build: perl.build 74 cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 $@ 75 76beforedepend: config.sh config.h uudmap.h Makefile makedepend x2p/Makefile writemain 77 cd ${.OBJDIR} && exec ${MAKE} depend 78 79perl.build: perl.lib 80 cd ${.OBJDIR} && exec ${MAKE} 81 82config.sh: ${.CURDIR}/config.over 83 cd ${.OBJDIR} && PATH="/bin:/usr/bin:/sbin:/usr/sbin" \ 84 exec /bin/sh ${.CURDIR}/Configure ${CONFIGURE_ARGS} 85 86Makefile cflags makeaperl makedepend makedir myconfig writemain: 87 cd ${.OBJDIR} && exec /bin/sh $@.SH 88 89Policy.sh: 90 cd ${.OBJDIR} && exec /bin/sh Policy_sh.SH 91 92config.h: 93 cd ${.OBJDIR} && exec /bin/sh config_h.SH 94 95uudmap.h: generate_uudmap 96 ./generate_uudmap > uudmap.h 97 98generate_uudmap: generate_uudmap.o 99 ${CC} -o generate_uudmap generate_uudmap.o 100 101pod/Makefile: 102 cd ${.OBJDIR}/pod && exec /bin/sh Makefile.SH 103 104x2p/Makefile: 105 cd ${.OBJDIR}/x2p && exec /bin/sh Makefile.SH 106 107x2p/cflags: 108 cd ${.OBJDIR}/x2p && exec /bin/sh 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 -mkdir -p ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd 116 (cd ${DESTDIR}/usr/include; ${H2PH} \ 117 -d ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd \ 118 `find . -name '*.h'`; \ 119 pax -rw `find . -type l \! -name '*.h' | sed 's/^..//'` \ 120 ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd) 121 -chmod -R a+rX ${DESTDIR}/usr/libdata/perl5 122 123install.perl: 124 cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \ 125 STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o NOLIBINSTALL=1 \ 126 LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl --destdir=${DESTDIR} -o STRIPFLAGS=${STRIPFLAGS} 127 128test: 129 -@if [ -e Makefile ]; then ${MAKE} test; fi 130 131clean: 132 -@if [ -e Makefile ]; then ${MAKE} realclean; fi 133 134cleandir: 135 -@if [ ${.CURDIR} != ${.OBJDIR} ]; then \ 136 rm -rf *; \ 137 else \ 138 test -e Makefile && ${MAKE} distclean; \ 139 rm -f ${CLEANFILES}; \ 140 fi 141 @cd ${.CURDIR} && ${MAKE} -f Makefile.bsd-wrapper1 cleandir 142 143maninstall: 144.ifdef NOMAN 145 @echo NOMAN is set 146.else 147 @cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 maninstall 148.endif 149 150.include <bsd.lib.mk> 151 152# These have to come after the inclusion of <bsd.lib.mk> 153 154# Need -fPIC, not -fpic on sparc 155.if ($(TARGET_MACHINE_ARCH) == sparc) 156PICFLAG=-fPIC 157.endif 158 159# The DynaLoader extension is now compiled statically into libperl 160miniperl: ${GENERATED} ${SRCS1:S/.c/.o/g} opmini.o miniperl.o miniperlmain.o 161 ${CC} -o miniperl ${SRCS1:S/.c/.o/g} opmini.o miniperl.o miniperlmain.o -lm 162 163opmini.c: op.c 164 rm -f opmini.c 165 cp op.c opmini.c 166 167opmini.o: opmini.c 168 ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -c $> -o $@ 169 170miniperl.o: perl.c 171 ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -c $> -o $@ 172 173lib/Config.pm: miniperl config.sh 174 cd ${.OBJDIR} && exec ${MAKE} preplibrary 175 176DynaLoader.c: miniperl ${DYNALOADER} lib/Config.pm 177 ./miniperl -Ilib lib/ExtUtils/xsubpp -noprototypes -typemap \ 178 ../../lib/ExtUtils/typemap ${DYNALOADER} | \ 179 sed -f ${.CURDIR}/DynaLoader.sed > $@ 180 181perl.lib: ${GENERATED} ${_LIBS} 182 183install.lib: 184 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 lib${LIB}.a \ 185 ${DESTDIR}${LIBDIR} 186.if (${INSTALL_COPY} != "-p") 187 ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a 188.endif 189 chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}.a 190.if !defined(NOPROFILE) 191 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ 192 lib${LIB}_p.a ${DESTDIR}${LIBDIR} 193.if (${INSTALL_COPY} != "-p") 194 ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a 195.endif 196 chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_p.a 197.endif 198.if !defined(NOPIC) && (${MACHINE_ARCH} != "mips64") 199 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ 200 lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 201.if (${INSTALL_COPY} != "-p") 202 ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a 203.endif 204 chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a 205.endif 206.if !defined(NOPIC) && defined(major) && defined(minor) 207 ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 208 lib${LIB}.so.${major}.${minor} ${DESTDIR}${LIBDIR} 209.endif 210.PHONY: perl.lib install.lib perl.build install.perl man.build mansrc.build 211