summaryrefslogtreecommitdiff
path: root/build/rules.mk
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>1999-12-30 02:59:53 +0000
committerSascha Schumann <sas@php.net>1999-12-30 02:59:53 +0000
commitf2f8d38efa3ccbaa05affaf8fcab24786ef452de (patch)
treec546807d61a77a191f89056212a4c40c63f0e83b /build/rules.mk
parent6bf3529919cf60389797a107cab16c826df3e68f (diff)
downloadphp-git-f2f8d38efa3ccbaa05affaf8fcab24786ef452de.tar.gz
Integration of -ng changes. Changes:
- added support for externally built modules, - improved support for in-tree shared modules, - fixed diversion bugs, - configure displays some informative messages, - faster static build (libtool isn't used anymore for compiling non-PIC objects), - dependencies comparable to automake's without requiring GNU make or GCC, - working make clean for non-GNU makes.
Diffstat (limited to 'build/rules.mk')
-rw-r--r--build/rules.mk106
1 files changed, 106 insertions, 0 deletions
diff --git a/build/rules.mk b/build/rules.mk
new file mode 100644
index 0000000000..f589dc5da7
--- /dev/null
+++ b/build/rules.mk
@@ -0,0 +1,106 @@
+# Copyright (c) 1999 Sascha Schumann. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+##############################################################################
+# $Id$
+#
+
+include $(DEPTH)/config_vars.mk
+
+INCLUDES += $(EXTRA_INCLUDES)
+CFLAGS += $(EXTRA_CFLAGS)
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@
+mkinstalldirs = $(top_srcdir)/build/shtool mkdir -f -p
+INSTALL = $(top_srcdir)/build/shtool install -c
+INSTALL_DATA = $(INSTALL) -m 644
+
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I$(DEPTH)
+
+moduledir = $(libdir)/php/modules
+top_srcdir = $(topsrcdir)
+top_builddir = $(DEPTH)
+
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .s .y .l
+
+.c.o:
+ $(COMPILE) -c $<
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+.c.lo:
+ $(PHP_COMPILE)
+
+.s.lo:
+ $(PHP_COMPILE)
+
+.S.lo:
+ $(PHP_COMPILE)
+
+.y.c:
+ $(YACC) $(YFLAGS) $< && mv y.tab.c $*.c
+ if test -f y.tab.h; then \
+ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
+ else :; fi
+
+.l.c:
+ $(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
+
+
+all: all-recursive $(targets)
+
+depend-recursive clean-recursive all-recursive install-recursive:
+ @target=`echo $@|sed s/-recursive//`; \
+ if test '$(NO_RECURSION)' != "$$target"; then \
+ list='$(SUBDIRS)'; for i in $$list; do \
+ echo "Making $$target in $$i"; \
+ test "$$i" = "." || (cd $$i && $(MAKE) $$target) || exit 1; \
+ done; \
+ fi;
+
+depend: depend-recursive
+ test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) *.c > .deps
+
+clean: clean-recursive
+ rm -f $(targets) *.lo *.la *.o $(CLEANFILES)
+ rm -rf .libs
+
+install: install-recursive $(targets) $(install_targets)
+
+install-modules:
+ @test -d modules && \
+ $(mkinstalldirs) $(moduledir) && \
+ echo "installing shared modules into $(moduledir)" && \
+ rm -f modules/*.la && \
+ cp modules/* $(moduledir) || true
+
+include $(srcdir)/.deps
+
+.PHONY: all-recursive clean-recursive install-recursive \
+$(install_targets) install all clean depend depend-recursive shared