# $OpenBSD: Makefile.bsd-wrapper,v 1.104 2016/09/20 18:29:12 natano Exp $ # # Build wrapper for Perl 5.20.1-RC2 # # For ``NOMAN'' .include # There is no point in building a profiled libperl that is never used. NOPROFILE= TARGET_MACHINE_ARCH?= $(MACHINE_ARCH) # Perl builds with -fno-strict-aliasing, we want libperl to do the same CFLAGS+= -fno-strict-aliasing CFLAGS+= -fno-delete-null-pointer-checks CONFIGURE_ARGS= -dsE -Dopenbsd_distribution=defined -Dccflags='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE' .if !exists(${.OBJDIR}/config.over) CONFIGURE_ARGS+= -Dmksymlinks .endif H2PH= /usr/bin/h2ph LIB= perl SRCS1= gv.c toke.c perly.c pad.c regcomp.c dump.c util.c mg.c reentr.c \ mro.c keywords.c hv.c av.c run.c pp_hot.c sv.c pp.c scope.c pp_ctl.c \ pp_sys.c doop.c doio.c regexec.c utf8.c taint.c deb.c universal.c \ globals.c perlio.c perlapi.c numeric.c mathoms.c locale.c \ pp_pack.c pp_sort.c caretx.c SRCS= ${SRCS1} op.c perl.c # We must not try to mkdep DynaLoader.c as it requires miniperl OBJS+= DynaLoader.o # For generating DynaLoader.c .if defined(NOPIC) DYNALOADER=ext/DynaLoader/dl_none.xs .else DYNALOADER=ext/DynaLoader/dl_dlopen.xs .endif # Arguments passed to Configure... CPPFLAGS+= -DPERL_CORE -DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -DBIG_TIME -I. .if defined (INSTALL_STRIP) && ${INSTALL_STRIP} == "-s" STRIPFLAGS='-s' .endif GEN_AFTER= bitcount.h config.h mg_data.h uudmap.h cflags makedepend \ myconfig Makefile Policy.sh pod/Makefile \ x2p/Makefile GENERATED= config.sh ${GEN_AFTER} ${GEN_AFTER}: config.sh CLEANFILES= config.sh Policy.sh DynaLoader.c all: perl.build man.build man.build: perl.build cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 mansrc.build beforedepend: config.sh config.h bitcount.h mg_data.h uudmap.h Makefile makedepend x2p/Makefile cd ${.OBJDIR} && exec ${MAKE} depend perl.build: perl.lib DynaLoader.c cd ${.OBJDIR} && exec ${MAKE} config.sh: ${.CURDIR}/config.over cd ${.OBJDIR} && PATH="/bin:/usr/bin:/sbin:/usr/sbin" \ exec /bin/sh ${.CURDIR}/Configure ${CONFIGURE_ARGS} Makefile cflags makedepend makedir myconfig: cd ${.OBJDIR} && exec /bin/sh $@.SH Policy.sh: cd ${.OBJDIR} && exec /bin/sh Policy_sh.SH config.h: cd ${.OBJDIR} && exec /bin/sh config_h.SH uudmap.h: bitcount.h mg_data.h: bitcount.h bitcount.h: generate_uudmap ./generate_uudmap uudmap.h bitcount.h mg_data.h generate_uudmap: generate_uudmap.o ${CC} ${CPPFLAGS} ${CFLAGS} -o generate_uudmap generate_uudmap.o pod/Makefile: cd ${.OBJDIR}/pod && exec /bin/sh Makefile.SH x2p/Makefile: cd ${.OBJDIR}/x2p && exec /bin/sh Makefile.SH # Never try to regenerate perly.c or perly.h perly.c perly.h: perly.y -@true install: install.lib install.perl maninstall -${INSTALL} -d -o ${LIBOWN} -g ${LIBGRP} -m ${DIRMODE} \ ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd (cd ${DESTDIR}/usr/include; ${H2PH} \ -d ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd \ `find . -name '*.h'`; \ pax -rw `find . -type l \! -name '*.h' | sed 's/^..//'` \ ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd) chown -RP ${LIBOWN}:${LIBGRP} \ ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd -chmod -R a+rX ${DESTDIR}/usr/libdata/perl5 install.perl: cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \ STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o NOLIBINSTALL=1 \ LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl --user=${LIBOWN} --group=${LIBGRP} --destdir=${DESTDIR} -o ${STRIPFLAGS} test: -@if [ -e Makefile ]; then ${MAKE} test; fi clean: -@if [ -e Makefile ]; then ${MAKE} realclean; fi cleandir: -@if [ ${.CURDIR} != ${.OBJDIR} ]; then \ rm -rf *; \ else \ test -e Makefile && ${MAKE} distclean; \ rm -f ${CLEANFILES}; \ fi @cd ${.CURDIR} && ${MAKE} -f Makefile.bsd-wrapper1 cleandir maninstall: .ifdef NOMAN @echo NOMAN is set .else @cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 maninstall .endif .include # These have to come after the inclusion of # Need -fPIC, not -fpic on sparc .if ($(TARGET_MACHINE_ARCH) == sparc) PICFLAG=-fPIC .endif # Unaligned access on alpha with -ftree-ter # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679 # More details # https://rt.perl.org/Public/Bug/Display.html?id=120888 .if ($(TARGET_MACHINE_ARCH) == alpha) CFLAGS+= -fno-tree-ter .endif # The DynaLoader extension is now compiled statically into libperl miniperl: ${GENERATED} ${SRCS1:S/.c/.o/g} opmini.o perlmini.o miniperlmain.o ${CC} ${CPPFLAGS} ${CFLAGS} -o $@ ${SRCS1:S/.c/.o/g} opmini.o perlmini.o miniperlmain.o ${LDFLAGS} -lm opmini.c: op.c rm -f opmini.c cp op.c opmini.c opmini.o: opmini.c ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -c $> -o $@ perlmini.o: perlmini.c ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -c $> -o $@ lib/Config.pm: miniperl config.sh cd ${.OBJDIR} && exec ${MAKE} preplibrary DynaLoader.c: miniperl ${DYNALOADER} lib/Config.pm ./miniperl -Ilib -Idist/Cwd -Idist/Cwd/lib -Idist/ExtUtils-ParseXS/lib \ -Icpan/Getopt-Long/lib -Idist/constant/lib -Iext/re \ -mExtUtils::Typemaps dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp \ -noprototypes -typemap ../../lib/ExtUtils/typemap ${DYNALOADER} | \ sed -f ${.CURDIR}/DynaLoader.sed > $@; test -s $@ || rm -f $@ perl.lib: ${GENERATED} ${_LIBS} install.lib: ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 lib${LIB}.a \ ${DESTDIR}${LIBDIR} .if (${INSTALL_COPY} != "-p") ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a .endif chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}.a .if !defined(NOPROFILE) ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ lib${LIB}_p.a ${DESTDIR}${LIBDIR} .if (${INSTALL_COPY} != "-p") ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a .endif chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_p.a .endif .if !defined(NOPIC) && defined(major) && defined(minor) ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ lib${LIB}.so.${major}.${minor} ${DESTDIR}${LIBDIR} .endif .PHONY: perl.lib install.lib perl.build install.perl man.build