commit - 10cc819309de08fbab770ce9605dec1b35a4fad9
commit + 1610f9541d742906f7f683e9ad1ad2a29225ae8a
blob - 61652bbe582325fe7ece30065b6fadb9a80547bf
blob + d43e757db51104a57bebd9c0d3c521629a20f697
--- .gitignore
+++ .gitignore
compat/*.o
docs
y.tab.*
-Makefile.local
compile_flags.txt
config.h
config.h.old
config.log
config.log.old
+config.mk
configure.local
!contrib/gmid
!contrib/vim/syntax_checkers/gmid
blob - 0b73090e43c8e6c5295f33323c4c803c1cbef5c2
blob + 3de0edadc7b16b23405856899006767e967d61fc
--- Makefile
+++ Makefile
# all.
TESTS=
+# -- build-related variables --
+
+COBJS = ${COMPATS:.c=.o}
+
GMID_SRCS = gmid.c config.c crypto.c dirs.c fcgi.c iri.c log.c \
logger.c mime.c proc.c proxy.c puny.c sandbox.c \
server.c utf8.c utils.c y.tab.c
DISTNAME = gmid-${VERSION}
-all: Makefile.local gmid ge gg
+# -- public targets --
+
+all: config.mk gmid ge gg
.PHONY: all tags static clean cleanall test regress install
-Makefile.local config.h: configure
+config.mk config.h: configure
@echo "$@ is out of date; please run ./configure"
@exit 1
-include Makefile.local
+include config.mk
-tags:
- ctags ${SRCS}
-
-y.tab.c: parse.y
- ${YACC} -b y parse.y
-
-gmid: ${GMID_OBJS}
- ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS}
-
-ge: ${GE_OBJS}
- ${CC} ${GE_OBJS} -o $@ ${LDFLAGS}
-
-gg: ${GG_OBJS}
- ${CC} ${GG_OBJS} -o $@ ${LDFLAGS}
-
-static: ${GMID_OBJS} ${GE_OBJS} ${GG_OBJS}
- ${CC} ${GMID_OBJS} -o gmid ${LDFLAGS} ${STATIC}
- ${CC} ${GG_OBJS} -o ge ${LDFLAGS} ${STATIC}
- ${CC} ${GG_OBJS} -o gg ${LDFLAGS} ${STATIC}
-
clean:
rm -f *.[do] compat/*.[do] y.tab.c y.tab.h y.output gmid ge gg
rm -f compile_flags.txt
${MAKE} -C regress clean
distclean: clean
- rm -f Makefile.local config.h config.h.old config.log config.log.old
+ rm -f config.h config.h.old config.log config.log.old config.mk
test: regress
regress: all
rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5
rm ${DESTDIR}${MANDIR}/man8/gmid.8
+tags:
+ ctags ${SRCS}
+
+# --internal build targets --
+
+gmid: ${GMID_OBJS}
+ ${CC} ${GMID_OBJS} -o $@ ${LIBS} ${LDFLAGS}
+
+ge: ${GE_OBJS}
+ ${CC} ${GE_OBJS} -o $@ ${LIBS} ${LDFLAGS}
+
+gg: ${GG_OBJS}
+ ${CC} ${GG_OBJS} -o $@ ${LIBS} ${LDFLAGS}
+
+y.tab.c: parse.y
+ ${YACC} -b y parse.y
+
# make sure we pass -o to ${CC}. OpenBSD default suffix rule doesn't
.SUFFIXES: .c .o
.c.o:
blob - e98fdd63230325eff50534ebe082ae92e7611884
blob + f820f71c219debfb93731a6abbb6ea5fb284f4fc
--- compat/Makefile
+++ compat/Makefile
${INSTALL} -m 0644 ${DISTFILES} ${DESTDIR}/
.PHONY: all dist
-include ../Makefile.local
+include ../config.mk
blob - 9ae50d48cecc23633fe8d7cddee7890662a8144a
blob + 3d3f551602ecc946b6a83d2e1bc6ae6322faf6f0
--- configure
+++ configure
#!/bin/sh
#
-# Copyright (c) 2021, 2022 Omar Polo <op@omarpolo.com>
+# Copyright (c) 2021, 2022, 2023 Omar Polo <op@omarpolo.com>
# Copyright (c) 2011, 2013-2022 Ingo Schwarze <schwarze@openbsd.org>
# Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
#
set -e
-[ -w config.log ] && mv config.log config.log.old
-[ -w config.h ] && mv config.h config.h.old
-
-# Output file descriptor usage:
-# 1 (stdout): config.h, Makefile.local
-# 2 (stderr): original stderr, usually to the console
-# 3: config.log
-
-exec 3> config.log
-echo "file config.log: writing..."
-
-# --------
-# default settings: initialize all vars here such that nothing is
-# leaked from the environment except for CC, CFLAGS and LDFLAGS
-
+RELEASE=no
VERSION=2.0-unstable
-CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make ${MAKE_FLAGS} -sf -`
+usage()
+{
+ echo "usage: $0 [--help] [--prefix=prefix] [OPTION=VALUE...]" >&2
+ exit 1
+}
-if [ -z "${CFLAGS}" ]; then
- CFLAGS=`printf "all:\\n\\t@echo \\\$(CFLAGS)\\n" | make ${MAKE_FLAGS} -sf -`
+if command -v yacc 2>/dev/null >&2; then
+ YACC=yacc
+elif command -v bison 2>/dev/null >&2; then
+ YACC=bison
+else
+ # assume yacc by default. Make will fail building parse.y if
+ # not from a release tarball, but at least it'll have a decent
+ # error message.
+ YACC=yacc
fi
-CFLAGS="${CFLAGS} -W -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes"
-CFLAGS="${CFLAGS} -Wwrite-strings -Wpointer-sign -Wno-unused-parameter"
-CFLAGS="${CFLAGS} -Wno-missing-field-initializers"
+pkgconfig=
-if [ -z "${LDFLAGS}" ]; then
- LDFLAGS=`printf "all:\\n\\t@echo \\\$(LDFLAGS)\\n" | make ${MAKE_FLAGS} -sf -`
- LDFLAGS="-ltls -levent -lcrypto"
+CC=${CC:-cc}
+
+if [ "$RELEASE" = no ]; then
+ CFLAGS=${CFLAGS:--O0 -g3}
+else
+ CFLAGS=${CFLAGS:--O2 -pipe}
fi
-LD_IMSG=
-STATIC=
-YACC=yacc
+PREFIX=${PREFIX-/usr/local}
-COBJS=
+CDIAGFLAGS=
+CDIAGFLAGS="${CDIAGFLAGS} -W -Wall -Wextra -Wpointer-arith -Wuninitialized"
+CDIAGFLAGS="${CDIAGFLAGS} -Wstrict-prototypes -Wmissing-prototypes -Wunused"
+CDIAGFLAGS="${CDIAGFLAGS} -Wsign-compare -Wno-unused-parameter" # -Wshadow
+CDIAGFLAGS="${CDIAGFLAGS} -Wno-missing-field-initializers"
+CDIAGFLAGS="${CDIAGFLAGS} -Wpointer-sign"
-DISABLE_SANDBOX=0
+while [ $# -gt 0 ]; do
+ key="${1%%=*}"
+ val="${1#*=}"
-NEED_GNU_SOURCE=0
-NEED_OPENBSD_SOURCE=0
+ if [ "$key" = --help ]; then
+ usage
+ fi
-PREFIX="/usr/local"
-BINDIR=
+ if [ "$key" = -Werror ]; then
+ CDIAGFLAGS="$CDIAGFLAGS -Werror"
+ shift
+ continue
+ fi
-INSTALL="install"
+ if [ "$key" = --enable-sandbox ]; then
+ key=DISABLE_SANDBOX
+ val=0
+ fi
-add_library() {
- if pkg-config "$1"; then
- CFLAGS="${CFLAGS} $(pkg-config --cflags "$1")"
- LDFLAGS="${LDFLAGS} $(pkg-config --libs "$1")"
+ if [ "$key" = --disable-sandbox ]; then
+ key=DISABLE_SANDBOX
+ val=1
fi
-}
-# try to auto detect CFLAGS and LDFLAGS
-if command -v pkg-config >/dev/null; then
- add_library "libtls"
- add_library "openssl"
+ if [ "$key" = "$1" ]; then
+ # if no --xy=, look at the next arg
+ if ! shift 2>/dev/null; then
+ echo "$0: missing value for $key" >&2
+ exit 1
+ fi
+ val="$1"
+ fi
- case "$(uname)" in
- OpenBSD)
- # use libevent and imsg in base
- ;;
- *)
- add_library "libevent"
- add_library "libimsg"
- ;;
+ case "$key" in
+ --bindir) key=BINDIR ;;
+ --mandir) key=MANDIR ;;
+ --prefix) key=PREFIX ;;
esac
- case "$(uname)" in
- *BSD|DragonFly|Darwin)
- ;;
- *)
- add_library "libbsd-ctor libbsd-overlay"
- ;;
+ case "$key" in
+ BINDIR) BINDIR="$val" ;;
+ CC) CC="$val" ;;
+ CFLAGS) CFLAGS="$val" ;;
+ CDIAGFLAGS) CDIAGFLAGS="$val" ;;
+ DISABLE_SANDBOX) DISABLE_SANDBOX="$val" ;;
+ LDFLAGS) LDFLAGS="$val" ;;
+ PKG_CONFIG) PKG_CONFIG="$val" ;;
+ PREFIX) PREFIX="$val" ;;
+ YACC) YACC="$val" ;;
+ *) usage
esac
-fi
-# auto detect yacc/bison
-command -v ${YACC} >/dev/null || {
- echo "${YACC} not found: trying bison" 1>&2
- echo "${YACC} not found: trying bison" 1>&3
- YACC=bison
- command -v ${YACC} >/dev/null || {
- echo "${YACC} not found: giving up" 1>&2
- echo "${YACC} not found: giving up" 1>&3
- }
-}
+ shift
+done
-# --------
-# allow certain variables to be overridden on the command line
+[ -w config.log ] && mv config.log config.log.old
+[ -w config.h ] && mv config.h config.h.old
-for keyvals in "$@"; do
- if [ "$keyvals" = "--disable-sandbox" ]; then
- DISABLE_SANDBOX=1
- continue
- fi
+exec 3> config.log
+echo "file config.log: writing..."
- if [ "$keyvals" = "--enable-sandbox" ]; then
- DISABLE_SANDBOX=0
- continue
- fi
+NEED_GNU_SOURCE=0
+NEED_OPENBSD_SOURCE=0
- key=`echo $keyvals | cut -s -d '=' -f1`
- if [ -z "$key" ]; then
- echo "$0: invalid key-value: $keyvals" 1>&2
- exit 1
+COMPATS=
+COMP="${CC} ${CFLAGS} -Wno-unused -Werror"
+
+# singletest name var extra-cflags extra-libs msg
+singletest() {
+ msg="$5"
+ if [ -z "$msg" ]; then
+ if [ -n "$3" ]; then
+ msg=" ($3)"
+ elif [ -n "$4" ]; then
+ msg=" ($4)"
+ fi
+ elif [ "$msg" = no ]; then
+ msg=""
fi
- val=`echo $keyvals | cut -d '=' -f 2-`
- case "$key" in
- BINDIR) BINDIR="$val" ;;
- CC) CC="$val" ;;
- CFLAGS) CFLAGS="$val" ;;
- DESTDIR) DESTDIR="$val" ;;
- LDFLAGS) LDFLAGS="$val" ;;
- MANDIR) MANDIR="$val" ;;
- PREFIX) PREFIX="$val" ;;
- YACC) YACC="$val" ;;
- --prefix) PREFIX="$val" ;;
- *)
- echo "$0: invalid key: $key" 1>&2
- exit 1
- esac
-done
-# --------
-# Allow configure.local to override all variables, default settings,
-# command-line arguments, and tested features, above.
+ cat >&3 <<EOF
+${1}: testing...
+$COMP have/${1}.c $3 -o test-$1 $LDFLAGS $4
+EOF
+ if $COMP have/${1}.c $3 -o test-$1 $LDFLAGS $4 >&3 2>&3; then
+ rm -f test-${1} test-${1}.d
-if [ -r ./configure.local ]; then
- echo "configure.local: reading..." 1>&2
- echo "configure.local: reading..." 1>&3
- cat ./configure.local 1>&3
- . ./configure.local
-else
- echo "configure.local: no (fully automatic configuration)" 1>&2
- echo "configure.local: no (fully automatic configuration)" 1>&3
-fi
+ echo "${1}: $CC$msg succeeded" >&3
+ echo "${1}$msg: yes"
+ echo >&3
-# --------
-# tests functions
+ return 0
+ fi
-# Check whether this HAVE_ setting is manually overridden.
-# If yes, use the override, if no, do not decide anything yet.
-# Arguments: test file name, test var name, manual value
-ismanual() {
- [ -z "${3}" ] && return 1
- echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&2
- echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&3
- echo 1>&3
- return 0
+ echo "${1}: $CC$msg failed $?" >&3
+ echo "${1}$msg: no"
+ echo >&3
+
+ return 1
}
-# Run a single autoconfiguration test.
-# In case of success, enable the feature.
-# In case of failure, do not decide anything yet.
-# Arguments: test file name, test var name, additional CFLAGS
-singletest() {
- n=${1}${3}
- cat 1>&3 << __HEREDOC__
-testing ${n} ...
-${COMP} -o have/${1} have/${1}.c ${3} ${LDFLAGS}
-__HEREDOC__
-
- if ${COMP} -o "have/${1}" "have/${1}.c" ${3} ${LDFLAGS} 1>&3 2>&3
- then
- echo "tested ${n}: yes" 1>&2
- echo "tested ${n}: yes" 1>&3
- echo 1>&3
- eval HAVE_${2}=1
- [ "${3}" = "-D_GNU_SOURCE" ] && NEED_GNU_SOURCE=1
- [ "${3}" = "-D_OPENBSD_SOURCE" ] && NEED_OPENBSD_SOURCE=1
- [ "${3}" = "-lutil" ] && LD_IMSG="-lutil"
- rm "have/${1}"
+# deptest name var
+deptest() {
+ if singletest "$1" "$2" "${CFLAGS}" "${LIBS}" no; then
+ eval HAVE_${2}=1
return 0
- else
- echo "tested ${n}: no (compilation failed)" 1>&2
- echo "result of ${n}: ${CC} failed with exit status $?" 1>&3
- echo "result of compiling ${n}: no" 1>&3
- echo 1>&3
- return 1
fi
-}
-# Run a complete autoconfiguration test, including the check for
-# a manual override and disabling the feature on failure.
-# Arguments: test file name, test var name, additional CFLAGS
-# The final argument can optionally be repeated a second time.
-runtest() {
- eval _manual=\${HAVE_${2}}
- ismanual "${1}" "${2}" "${_manual}" && return 0
- singletest "${1}" "${2}" "${3}" && return 0
- [ -n "${4}" ] && singletest "${1}" "${2}" "${4}" && return 0
+ if [ -f compat/${1}.c ]; then
+ COMPATS="compat/$1.c $COMPATS"
+ fi
+
eval HAVE_${2}=0
return 1
}
-# --------
-# compiler options
+# runtest name var extra-cflags extra-libs pkgconfig-name
+runtest() {
+ if singletest "$1" "$2" "" ""; then
+ eval HAVE_${2}=1
+ return 0
+ fi
-COMP="${CC} ${CFLAGS} -Wno-unused -Werror"
+ if [ -n "$3" -o -n "$4" ]; then
+ echo "retrying with ${3+$3 }$4" >&3
+ if singletest "$1" "$2" "$3" "$4"; then
+ eval HAVE_${2}=1
+ if [ "$3" = -D_GNU_SOURCE ]; then
+ NEED_GNU_SOURCE=1
+ return 0
+ fi
+ if [ "$4" = -D_OPENBSD_SOURCE ]; then
+ NEED_OPENBSD_SOURCE=1
+ return 0
+ fi
+ if [ -n "$3" ]; then
+ CFLAGS="$CFLAGS $3"
+ fi
+ if [ -n "$4" ]; then
+ LIBS="$LIBS $4"
+ fi
+ return 0
+ fi
+ fi
-echo "selected CFLAGS=\"${CFLAGS}\"" 1>&2
-echo "selected CFLAGS=\"${CFLAGS}\"" 1>&3
-echo 1>&3
+ if [ -n "$5" -a -n "$pkgconfig" ]; then
+ if $pkgconfig $5; then
+ cflags="$($pkgconfig --cflags "$5")"
+ ldflags="$($pkgconfig --libs "$5")"
+ echo "retrying with pkg-config" >&3
+ if singletest "$1" "$2" "$cflags" "$ldflags"; then
+ CFLAGS="$CFLAGS $cflags"
+ LIBS="$LIBS $ldflags"
+ eval HAVE_$2=1
+ return 0
+ fi
+ fi
+ fi
-if [ -n "${STATIC}" ]; then
- echo "selected STATIC=\"${STATIC}\" (manual)" 1>&2
- echo "selected STATIC=\"${STATIC}\" (manual)" 1>&3
- echo 1>&3
+ if [ -f compat/$1.c ]; then
+ COMPATS="compat/$1.c $COMPATS"
+ fi
+
+ eval HAVE_$2=0
+ return 1
+}
+
+if [ "$PKG_CONFIG" = no ]; then
+ echo "pkg-config: disabled"
+elif [ -n "$PKG_CONFIG" ]; then
+ pkgconfig="$PKG_CONFIG"
+ echo "pkg-config: (manual) $PKG_CONFIG"
+elif command -v pkg-config 2>/dev/null >&2; then
+ pkgconfig="pkg-config"
+ echo "pkg-config: (auto) pkg-config"
else
- runtest noop STATIC -static || true
- [ ${HAVE_STATIC} -eq 0 ] || STATIC="-static"
- echo "selected STATIC=\"${STATIC}\"" 1>&2
- echo "selected STATIC=\"${STATIC}\"" 1>&3
- echo 1>&3
+ echo "pkg-config: not found"
fi
-# --------
-# tests for config.h
-
-if runtest noop MMD -MMD; then
+if singletest noop MMD -MMD; then
CFLAGS="${CFLAGS} -MMD"
fi
runtest getdtablecount GETDTABLECOUNT || true
runtest getdtablesize GETDTABLESIZE || true
runtest getprogname GETPROGNAME || true
-runtest imsg IMSG -lutil || true
-runtest libevent LIBEVENT || true
-runtest libevent2 LIBEVENT2 || true
-runtest libtls LIBTLS || true
-runtest memmem MEMMEM "" -D_GNU_SOURCE || true
-runtest openssl OPENSSL || true
+runtest imsg IMSG "" -lutil libimsg || true
+runtest libevent LIBEVENT "" -levent libevent_core|| true
+runtest libtls LIBTLS "" -ltls libtls || true
+runtest memmem MEMMEM -D_GNU_SOURCE || true
+runtest openssl OPENSSL "" '-lcrypto -lssl' 'libcrypto libssl' || true
runtest pr_set_name PR_SET_NAME || true
-runtest program_invocation_short_name PROGRAM_INVOCATION_SHORT_NAME "" -D_GNU_SOURCE || true
+runtest program_invocation_short_name PROGRAM_INVOCATION_SHORT_NAME -D_GNU_SOURCE || true
runtest queue_h QUEUE_H || true
-runtest reallocarray REALLOCARRAY || true
+runtest reallocarray REALLOCARRAY -D_OPENBSD_SOURCE || true
runtest recallocarray RECALLOCARRAY || true
runtest setproctitle SETPROCTITLE || true
-runtest setresgid SETRESGID "" -D_GNU_SOURCE || true
-runtest setresuid SETRESUID "" -D_GNU_SOURCE || true
+runtest setresgid SETRESGID -D_GNU_SOURCE || true
+runtest setresuid SETRESUID -D_GNU_SOURCE || true
runtest strlcat STRLCAT || true
runtest strlcpy STRLCPY || true
-runtest strtonum STRTONUM || true
+runtest strtonum STRTONUM -D_OPENBSD_SOURCE || true
runtest tree_h TREE_H || true
-runtest vasprintf VASPRINTF "" -D_GNU_SOURCE || true
+runtest vasprintf VASPRINTF -D_GNU_SOURCE || true
+deptest libevent2 LIBEVENT2 || true
+
if [ ${HAVE_LIBTLS} -eq 0 ]; then
echo "FATAL: libtls not found" 1>&2
echo "FATAL: libtls not found" 1>&3
exit 1
fi
+if [ ${HAVE_IMSG} -eq 0 ]; then
+ # compat/imsg.c is implicitly added
+ COMPATS="$COMPATS compat/imsg-buffer.c"
+fi
+
if [ ${HAVE_QUEUE_H} -eq 0 -o ${HAVE_IMSG} -eq 0 -o ${HAVE_TREE_H} -eq 0 ]; then
CFLAGS="${CFLAGS} -I ${PWD}/compat"
fi
-# --------
-# write config.h
+if [ $HAVE_LIBEVENT2 -eq 1 ]; then
+ CFLAGS="$CFLAGS -DHAVE_LIBEVENT2=1"
+fi
+if [ $NEED_GNU_SOURCE = 1 ]; then
+ CFLAGS="$CFLAGS -D_GNU_SOURCE"
+fi
+if [ $NEED_OPENBSD_SOURCE = 1 ]; then
+ CFLAGS="$CFLAGS -D_OPENBSD_SOURCE"
+fi
+
+CFLAGS="${CFLAGS} ${CDIAGFLAGS}"
+
exec > config.h
+echo "config.h: writing.." >&2
cat <<__HEREDOC__
#ifdef __cplusplus
#endif
__HEREDOC__
-[ ${NEED_GNU_SOURCE} -eq 0 ] || echo "#define _GNU_SOURCE"
-[ ${NEED_OPENBSD_SOURCE} -eq 0 ] || echo "#define _OPENBSD_SOURCE"
-
[ ${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 -o ${HAVE_IMSG} -eq 0 ] \
&& echo "#include <sys/types.h>"
[ ${HAVE_VASPRINTF} -eq 0 ] && echo "#include <stdarg.h>"
#define VERSION "${VERSION}"
#define DISABLE_SANDBOX ${DISABLE_SANDBOX}
-#define HAVE_ERR ${HAVE_ERR}
-#define HAVE_EXPLICIT_BZERO ${HAVE_EXPLICIT_BZERO}
-#define HAVE_FREEZERO ${HAVE_FREEZERO}
-#define HAVE_GETDTABLECOUNT ${HAVE_GETDTABLECOUNT}
-#define HAVE_GETDTABLESIZE ${HAVE_GETDTABLESIZE}
-#define HAVE_GETPROGNAME ${HAVE_GETPROGNAME}
-#define HAVE_IMSG ${HAVE_IMSG}
-#define HAVE_LIBEVENT ${HAVE_LIBEVENT}
-#define HAVE_LIBEVENT2 ${HAVE_LIBEVENT2}
-#define HAVE_PROGRAM_INVOCATION_SHORT_NAME ${HAVE_PROGRAM_INVOCATION_SHORT_NAME}
-#define HAVE_PR_SET_NAME ${HAVE_PR_SET_NAME}
-#define HAVE_QUEUE_H ${HAVE_QUEUE_H}
-#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY}
-#define HAVE_RECALLOCARRAY ${HAVE_RECALLOCARRAY}
-#define HAVE_SETPROCTITLE ${HAVE_SETPROCTITLE}
-#define HAVE_SETRESGID ${HAVE_SETRESGID}
-#define HAVE_SETRESUID ${HAVE_SETRESUID}
-#define HAVE_STRLCAT ${HAVE_STRLCAT}
-#define HAVE_STRLCPY ${HAVE_STRLCPY}
-#define HAVE_STRTONUM ${HAVE_STRTONUM}
-#define HAVE_TREE_H ${HAVE_TREE_H}
-#define HAVE_VASPRINTF ${HAVE_VASPRINTF}
-
__HEREDOC__
[ ${HAVE_EXPLICIT_BZERO} -eq 0 -o \
echo "extern void errx(int, const char*, ...);"
echo "extern void warn(const char*, ...);"
echo "extern void warnx(const char*, ...);"
- COBJS="${COBJS} compat/err.o"
else
echo "#include <err.h>"
fi
if [ ${HAVE_EXPLICIT_BZERO} -eq 0 ]; then
echo "extern void explicit_bzero(void*, size_t);"
- COBJS="${COBJS} compat/explicit_bzero.o"
fi
if [ ${HAVE_FREEZERO} -eq 0 ]; then
echo "extern void freezero(void*, size_t);"
- COBJS="${COBJS} compat/freezero.o"
fi
if [ ${HAVE_GETDTABLECOUNT} -eq 0 ]; then
echo "extern int getdtablecount(void);"
- COBJS="${COBJS} compat/getdtablecount.o"
fi
if [ ${HAVE_GETDTABLESIZE} -eq 0 ]; then
echo "extern int getdtablesize(void);"
- COBJS="${COBJS} compat/getdtablesize.o"
fi
if [ ${HAVE_GETPROGNAME} -eq 0 ]; then
echo "extern const char *getprogname(void);"
- COBJS="${COBJS} compat/getprogname.o"
fi
-if [ ${HAVE_IMSG} -eq 0 ]; then
- COBJS="${COBJS} compat/imsg.o compat/imsg-buffer.o"
-fi
if [ ${HAVE_MEMMEM} -eq 0 ]; then
echo "extern void *memmem(const void *, size_t, const void *, size_t);"
- COBJS="${COBJS} compat/memmem.o"
fi
if [ ${HAVE_REALLOCARRAY} -eq 0 ]; then
echo "extern void *reallocarray(void*, size_t, size_t);"
- COBJS="${COBJS} compat/reallocarray.o"
fi
if [ ${HAVE_RECALLOCARRAY} -eq 0 ]; then
echo "extern void *recallocarray(void*, size_t, size_t, size_t);"
- COBJS="${COBJS} compat/recallocarray.o"
fi
if [ ${HAVE_SETPROCTITLE} -eq 0 ]; then
echo "extern void setproctitle(const char *fmt, ...);"
- COBJS="${COBJS} compat/setproctitle.o"
fi
if [ ${HAVE_SETRESGID} -eq 0 ]; then
echo "extern int setresgid(gid_t, gid_t, gid_t);"
- COBJS="${COBJS} compat/setresgid.o"
fi
if [ ${HAVE_SETRESUID} -eq 0 ]; then
echo "extern int setresuid(uid_t, uid_t, uid_t);"
- COBJS="${COBJS} compat/setresuid.o"
fi
if [ ${HAVE_STRLCAT} -eq 0 ]; then
echo "extern size_t strlcat(char*, const char*, size_t);"
- COBJS="${COBJS} compat/strlcat.o"
fi
if [ ${HAVE_STRLCPY} -eq 0 ]; then
echo "extern size_t strlcpy(char*, const char*, size_t);"
- COBJS="${COBJS} compat/strlcpy.o"
fi
if [ ${HAVE_STRTONUM} -eq 0 ]; then
echo "extern long long strtonum(const char*, long long, long long, const char**);"
- COBJS="${COBJS} compat/strtonum.o"
fi
if [ ${HAVE_VASPRINTF} -eq 0 ]; then
echo "extern int vasprintf(char**, const char*, va_list);"
- COBJS="${COBJS} compat/vasprintf.o"
fi
cat <<__HEREDOC__
echo "file config.h: written" 1>&2
echo "file config.h: written" 1>&3
-# --------
-# tests for Makefile.local
+exec > config.mk
-exec > Makefile.local
+[ -z "${BINDIR}" ] && BINDIR="\${PREFIX}/bin"
+[ -z "${MANDIR}" ] && MANDIR="\${PREFIX}/man"
-[ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin"
-[ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man"
-
[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555"
[ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444"
[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444"
cat << __HEREDOC__
CC = ${CC}
CFLAGS = ${CFLAGS}
-LDFLAGS = ${LDFLAGS} ${LD_IMSG}
+LDFLAGS = ${LDFLAGS}
+LIBS = ${LIBS}
YACC = ${YACC}
STATIC = ${STATIC}
PREFIX = ${PREFIX}
BINDIR = ${BINDIR}
MANDIR = ${MANDIR}
-INCLUDEDIR = ${INCLUDEDIR}
-INSTALL = ${INSTALL}
-INSTALL_PROGRAM = ${INSTALL_PROGRAM}
-INSTALL_LIB = ${INSTALL_LIB}
-INSTALL_MAN = ${INSTALL_MAN}
-INSTALL_DATA = ${INSTALL_DATA}
-COBJS = ${COBJS}
+INSTALL = install
+INSTALL_PROGRAM = ${INSTALL} -m 0555
+INSTALL_LIB = ${INSTALL} -m 0444
+INSTALL_MAN = ${INSTALL} -m 0444
+INSTALL_DATA = ${INSTALL} -m 0444
+COMPATS= ${COMPATS}
+
VERSION = ${VERSION}
__HEREDOC__
-echo "file Makefile.local: written" 1>&2
-echo "file Makefile.local: written" 1>&3
+echo "file config.mk: written" 1>&2
+echo "file config.mk: written" 1>&3
+echo >&2
+echo "Now run \`make' to compile." >&2
+echo >&2
+
exit 0
blob - 9489eea384e2dc9c66f0db9a1ef9ebeeadc65aaa
blob + 8f81468d33333b82bfbcc6325a5793bea86aa492
--- contrib/Makefile
+++ contrib/Makefile
cp -R vim ${DESTDIR}/vim
.PHONY: all dist
-include ../Makefile.local
+include ../config.mk
blob - a2384c3f2da09600951d5dac9abff8453d49c576
blob + ee214d5a44e1ad365a8d4c155fe1188d567e452a
--- have/Makefile
+++ have/Makefile
${INSTALL} -m 0644 ${DISTFILES} ${DESTDIR}/
.PHONY: all dist
-include ../Makefile.local
+include ../config.mk
blob - 2e09681657abee2968ee371bebaf94ea13296635
blob + a0feea082634e7e804d43524aa22808afd472868
--- regress/Makefile
+++ regress/Makefile
tests.sh \
valid.ext
-include ../Makefile.local
+include ../config.mk
-COMPAT= ${COBJS:%=../%}
+COBJS = ${COMPATS:.c=.o}
+REG_COMPATS = ${COBJS:%=../%}
+PUNY_SRCS = puny-test.c ../puny.c ../utf8.c ../utils.c ../log.c
+PUNY_OBJS = ${PUNY_SRCS:.c=.o} ${REG_COMPATS}
+
+IRI_SRCS = iri_test.c ../iri.c ../utf8.c
+IRI_OBJS = ${IRI_SRCS:.c=.o} ${REG_COMPATS}
+
.PHONY: all data clean dist
all: data puny-test iri_test fcgi-test
data: testdata cert.pem testca.pem valid.crt invalid.cert.pem
-puny-test: puny-test.o ../puny.o ../utf8.o ../utils.o ../log.o ${COMPAT}
- ${CC} puny-test.o ../puny.o ../utf8.o ../utils.o ../log.o ${COMPAT} \
- -o puny-test ${LDFLAGS}
+puny-test: ${PUNY_OBJS}
+ ${CC} ${PUNY_OBJS} -o puny-test ${LIBS} ${LDFLAGS}
-iri_test: iri_test.o ../iri.o ../utf8.o ${COMPAT}
- ${CC} iri_test.o ../iri.o ../utf8.o ${COMPAT} -o $@ ${LDFLAGS}
+iri_test: ${IRI_OBJS}
+ ${CC} ${IRI_OBJS} -o $@ ${LIBS} ${LDFLAGS}
fill-file: fill-file.o
- ${CC} fill-file.o -o $@ ${LDFLAGS}
+ ${CC} fill-file.o -o $@ ${LIBS} ${LDFLAGS}
fcgi-test: fcgi-test.o
- ${CC} fcgi-test.o ${COMPAT} -o fcgi-test ${LDFLAGS}
+ ${CC} fcgi-test.o ${REG_COMPATS} -o fcgi-test ${LIBS} ${LDFLAGS}
key.pem: cert.pem