1# $MirOS: src/bin/mksh/Makefile,v 1.88 2011/10/07 19:51:17 tg Exp $ 2#- 3# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 4# Thorsten Glaser <tg@mirbsd.org> 5# 6# Provided that these terms and disclaimer and all copyright notices 7# are retained or reproduced in an accompanying document, permission 8# is granted to deal in this work without restriction, including un- 9# limited rights to use, publicly perform, distribute, sell, modify, 10# merge, give away, or sublicence. 11# 12# This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to 13# the utmost extent permitted by applicable law, neither express nor 14# implied; without malicious intent or gross negligence. In no event 15# may a licensor, author or contributor be held liable for indirect, 16# direct, other damage, loss, or other issues arising in any way out 17# of dealing in the work, even if advised of the possibility of such 18# damage or existence of a defect, except proven that it results out 19# of said person's immediate fault when using the work as intended. 20#- 21# use CPPFLAGS=-DDEBUG __CRAZY=Yes to check for certain more stuff 22 23.include <bsd.own.mk> 24 25PROG= mksh 26SRCS= edit.c eval.c exec.c expr.c funcs.c histrap.c jobs.c \ 27 lalloc.c lex.c main.c misc.c shf.c syn.c tree.c var.c 28.if !make(test-build) 29CPPFLAGS+= -DMKSH_ASSUME_UTF8 \ 30 -DHAVE_ATTRIBUTE_BOUNDED=1 -DHAVE_ATTRIBUTE_FORMAT=1 \ 31 -DHAVE_ATTRIBUTE_NONNULL=1 -DHAVE_ATTRIBUTE_NORETURN=1 \ 32 -DHAVE_ATTRIBUTE_UNUSED=1 -DHAVE_ATTRIBUTE_USED=1 \ 33 -DHAVE_SYS_BSDTYPES_H=0 -DHAVE_SYS_FILE_H=1 \ 34 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_PARAM_H=1 \ 35 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SYSMACROS_H=0 \ 36 -DHAVE_BSTRING_H=0 -DHAVE_GRP_H=1 -DHAVE_LIBGEN_H=1 \ 37 -DHAVE_LIBUTIL_H=0 -DHAVE_PATHS_H=1 -DHAVE_STDINT_H=1 \ 38 -DHAVE_STRINGS_H=1 -DHAVE_ULIMIT_H=0 -DHAVE_VALUES_H=0 \ 39 -DHAVE_CAN_INTTYPES=1 -DHAVE_CAN_UCBINTS=1 \ 40 -DHAVE_CAN_INT8TYPE=1 -DHAVE_CAN_UCBINT8=1 -DHAVE_RLIM_T=1 \ 41 -DHAVE_SIG_T=1 -DHAVE_SYS_SIGNAME=1 -DHAVE_SYS_SIGLIST=1 \ 42 -DHAVE_STRSIGNAL=0 -DHAVE_GETRUSAGE=1 -DHAVE_KILLPG=1 \ 43 -DHAVE_MKNOD=0 -DHAVE_MKSTEMP=1 -DHAVE_NICE=1 -DHAVE_REVOKE=1 \ 44 -DHAVE_SETLOCALE_CTYPE=0 -DHAVE_LANGINFO_CODESET=0 \ 45 -DHAVE_SELECT=1 -DHAVE_SETRESUGID=1 -DHAVE_SETGROUPS=1 \ 46 -DHAVE_STRCASESTR=1 -DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=1 \ 47 -DHAVE_REVOKE_DECL=1 -DHAVE_SYS_SIGLIST_DECL=1 \ 48 -DHAVE_PERSISTENT_HISTORY=1 49COPTS+= -std=gnu99 -Wall 50.endif 51 52USE_PRINTF_BUILTIN?= 0 53.if ${USE_PRINTF_BUILTIN} == 1 54.PATH: ${BSDSRCDIR}/usr.bin/printf 55SRCS+= printf.c 56CPPFLAGS+= -DMKSH_PRINTF_BUILTIN 57.endif 58 59MANLINKS= [ false pwd sh sleep test true 60BINLINKS= ${MANLINKS} echo domainname kill 61.for _i in ${BINLINKS} 62LINKS+= ${BINDIR}/${PROG} ${BINDIR}/${_i} 63.endfor 64.for _i in ${MANLINKS} 65MLINKS+= ${PROG}.1 ${_i}.1 66.endfor 67 68regress: ${PROG} check.pl check.t 69 -rm -rf regress-dir 70 mkdir -p regress-dir 71 echo export FNORD=666 >regress-dir/.mkshrc 72 HOME=$$(realpath regress-dir) perl ${.CURDIR}/check.pl \ 73 -s ${.CURDIR}/check.t -v -p ./${PROG} 74 75test-build: .PHONY 76 -rm -rf build-dir 77 mkdir -p build-dir 78.if ${USE_PRINTF_BUILTIN} == 1 79 cp ${BSDSRCDIR}/usr.bin/printf/printf.c build-dir/ 80.endif 81 cd build-dir; env CC=${CC:Q} CFLAGS=${CFLAGS:M*:Q} \ 82 CPPFLAGS=${CPPFLAGS:M*:Q} LDFLAGS=${LDFLAGS:M*:Q} \ 83 LIBS= NOWARN=-Wno-error TARGET_OS= CPP= /bin/sh \ 84 ${.CURDIR}/Build.sh -Q -r && ./test.sh -v 85 86cleandir: clean-extra 87 88clean-extra: .PHONY 89 -rm -rf build-dir regress-dir printf.o printf.ln 90 91distribution: 92 sed 's!\$$I''d\([:$$]\)!$$M''irSecuCron\1!g' \ 93 ${.CURDIR}/dot.mkshrc >${DESTDIR}/etc/skel/.mkshrc 94 chown ${BINOWN}:${CONFGRP} ${DESTDIR}/etc/skel/.mkshrc 95 chmod 0644 ${DESTDIR}/etc/skel/.mkshrc 96 97.include <bsd.prog.mk> 98