Skip to content

Commit

Permalink
Join build makefiles together
Browse files Browse the repository at this point in the history
Changes:
- Joins build/build.mk and build/build2.mk files together since there
  isn't any practical reason for having two different files with the
  current build system.
- Makefile is now more portable. All special syntaxes are omitted, for
  example, a conditional assignment operators `?=`. This makes buildconf
  more useful on Solaris make derivative, so there is no longer need to
  override make with gmake: `MAKE=gmake ./buildconf`.
- Suppressing autoconf and autoheader warnings is not needed anymore
  with current build system. Instead, the option `-Wall` has been used
  when running `./buildconf --debug` to get more useful debug info
  about current M4.
  • Loading branch information
petk committed Apr 17, 2019
1 parent 663056a commit 02c1f32
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 57 deletions.
36 changes: 28 additions & 8 deletions build/build.mk
Expand Up @@ -18,15 +18,35 @@
# Makefile to generate build tools
#

SUBDIRS = Zend TSRM
subdirs = Zend TSRM
stamp = buildmk.stamp
config_h_in = main/php_config.h.in
PHP_AUTOCONF = autoconf
PHP_AUTOHEADER = autoheader
PHP_AUTOCONF_FLAGS = -f

STAMP = buildmk.stamp
all: $(stamp) configure $(config_h_in)

all: $(STAMP)
@$(MAKE) -s -f build/build2.mk
$(stamp): build/buildcheck.sh
@build/buildcheck.sh $@

$(STAMP): build/buildcheck.sh
@build/buildcheck.sh $(STAMP)
configure: aclocal.m4 configure.ac $(PHP_M4_FILES)
@echo rebuilding $@
@rm -f $@
@$(PHP_AUTOCONF) $(PHP_AUTOCONF_FLAGS)

aclocal.m4: configure.ac acinclude.m4
@echo rebuilding $@
@cat acinclude.m4 ./build/libtool.m4 > $@

$(config_h_in): configure
# Explicitly remove target since autoheader does not seem to work correctly
# otherwise (timestamps are not updated). Also disable PACKAGE_* symbols in the
# generated php_config.h.in template.
@echo rebuilding $@
@rm -f $@
@$(PHP_AUTOHEADER) $(PHP_AUTOCONF_FLAGS)
@sed -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $@ > $@.tmp && mv $@.tmp $@

snapshot:
distname='$(DISTNAME)'; \
Expand All @@ -36,8 +56,8 @@ snapshot:
myname=`basename \`pwd\`` ; \
cd .. && cp -rp $$myname $$distname; \
cd $$distname; \
rm -f $(SUBDIRS) 2>/dev/null || true; \
for i in $(SUBDIRS); do \
rm -f $(subdirs) 2>/dev/null || true; \
for i in $(subdirs); do \
test -d $$i || (test -d ../$$i && cp -rp ../$$i $$i); \
done; \
find . -type l -exec rm {} \; ; \
Expand Down
44 changes: 0 additions & 44 deletions build/build2.mk

This file was deleted.

15 changes: 10 additions & 5 deletions buildconf
Expand Up @@ -3,6 +3,8 @@
# A wrapper around Autoconf that generates files to build PHP on *nix systems.

MAKE=${MAKE:-make}
PHP_AUTOCONF=${PHP_AUTOCONF:-autoconf}
PHP_AUTOHEADER=${PHP_AUTOHEADER:-autoheader}
force=0
debug=0

Expand Down Expand Up @@ -91,11 +93,14 @@ fi

echo "buildconf: Building configure files"

# List of *.m4 prerequisites files for the make configure target.
M4_FILES=$(echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4)

if test "$debug" = "1"; then
$MAKE -s -f build/build.mk M4_FILES="$M4_FILES" SUPPRESS_WARNINGS=""
autoconf_flags="-f -Wall"
else
$MAKE -s -f build/build.mk M4_FILES="$M4_FILES"
autoconf_flags="-f"
fi

$MAKE -s -f build/build.mk \
PHP_AUTOCONF="$PHP_AUTOCONF" \
PHP_AUTOHEADER="$PHP_AUTOHEADER" \
PHP_AUTOCONF_FLAGS="$autoconf_flags" \
PHP_M4_FILES="$(echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4)"

0 comments on commit 02c1f32

Please sign in to comment.