From f800cf250f079ab1e1bc1051c34d1d1061187447 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 14 Apr 2008 14:51:57 +0200 Subject: Move standard make compilation rules to build/make. (This used to be commit ceda3312a98b069d0711f3cb33de3ae71e91ebaa) --- source4/Makefile | 26 +++- source4/build/make/lex_compile.sh | 51 +++++++ source4/build/make/python.mk | 58 ++++++++ source4/build/make/rules.mk | 288 +++++++++++++++++++++++++++++++++++++ source4/build/make/yacc_compile.sh | 43 ++++++ source4/dynconfig.mk | 3 +- source4/rules.mk | 191 ------------------------ source4/script/lex_compile.sh | 51 ------- source4/script/yacc_compile.sh | 43 ------ source4/scripting/python/config.mk | 17 +-- 10 files changed, 466 insertions(+), 305 deletions(-) create mode 100755 source4/build/make/lex_compile.sh create mode 100644 source4/build/make/python.mk create mode 100644 source4/build/make/rules.mk create mode 100755 source4/build/make/yacc_compile.sh delete mode 100644 source4/rules.mk delete mode 100755 source4/script/lex_compile.sh delete mode 100755 source4/script/yacc_compile.sh diff --git a/source4/Makefile b/source4/Makefile index ab3ef47fed..8c74b4899d 100644 --- a/source4/Makefile +++ b/source4/Makefile @@ -19,6 +19,25 @@ BNLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS) HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS) HOSTLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS) +$(srcdir)/version.h: $(srcdir)/VERSION + @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ + +.DEFAULT_GOAL := all + +ifneq ($(automatic_deps),yes) +ALL_PREDEP = proto +.NOTPARALLEL: +endif + +regen_version:: + @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ + +clean_pch:: + @echo "Removing precompiled headers" + @-rm -f include/includes.h.gch + +pch:: clean_pch include/includes.h.gch + .DEFAULT_GOAL := all ifneq ($(automatic_dependencies),yes) @@ -26,9 +45,12 @@ ALL_PREDEP = proto .NOTPARALLEL: endif -include rules.mk +include build/make/rules.mk +include build/make/python.mk include data.mk +BINARIES += $(BIN_PROGS) $(SBIN_PROGS) + DEP_FILES = $(patsubst %.ho,%.hd,$(patsubst %.o,%.d,$(ALL_OBJS))) \ include/includes.d @@ -55,7 +77,7 @@ endif DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \ $(srcdir)/version.h -binaries:: +binaries:: $(BINARIES) libraries:: $(STATIC_LIBS) $(SHARED_LIBS) modules:: $(PLUGINS) headers:: $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) diff --git a/source4/build/make/lex_compile.sh b/source4/build/make/lex_compile.sh new file mode 100755 index 0000000000..9bba7257b1 --- /dev/null +++ b/source4/build/make/lex_compile.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +LEX="$1" +SRC="$2" +DEST="$3" +shift 3 +ARGS="$*" + +dir=`dirname $SRC` +file=`basename $SRC` +base=`basename $SRC .l` +if [ -z "$LEX" ]; then + # if $DEST is more recent than $SRC, we can just touch + # otherwise we touch but print out warnings + if [ -r $DEST ]; then + if [ x`find $SRC -newer $DEST -print` = x$SRC ]; then + echo "warning: lex not found - cannot generate $SRC => $DEST" >&2 + echo "warning: lex not found - only updating the timestamp of $DEST" >&2 + fi + touch $DEST; + exit; + fi + echo "error: lex not found - cannot generate $SRC => $DEST" >&2 + exit 1; +fi +# if $DEST is more recent than $SRC, we can just touch +if [ -r $DEST ]; then + if [ x`find $SRC -newer $DEST -print` != x$SRC ]; then + touch $DEST; + exit; + fi +fi +TOP=`pwd` +if cd $dir && $LEX $ARGS $file; then + if [ -r $base.yy.c ];then + # we must guarantee that config.h comes first + echo "#include \"config.h\"" > $base.c + sed -e "s|$base\.yy\.c|$DEST|" $base.yy.c >> $base.c + rm -f $base.yy.c + elif [ -r $base.c ];then + # we must guarantee that config.h comes first + mv $base.c $base.c.tmp + echo "#include \"config.h\"" > $base.c + sed -e "s|$base\.yy\.c|$DEST|" $base.c.tmp >> $base.c + rm -f $base.c.tmp + elif [ ! -r base.c ]; then + echo "$base.c nor $base.yy.c generated." + exit 1 + fi +fi +cd $TOP diff --git a/source4/build/make/python.mk b/source4/build/make/python.mk new file mode 100644 index 0000000000..57bf0169fe --- /dev/null +++ b/source4/build/make/python.mk @@ -0,0 +1,58 @@ +pythonbuilddir = $(builddir)/bin/python + +# Install Python +# Arguments: Module path +define python_module_template + +installpython:: $$(pythonbuilddir)/$(1) ; + cp $$< $$(DESTDIR)$$(PYTHONDIR)/$(1) + +uninstallpython:: + rm -f $$(DESTDIR)$$(PYTHONDIR)/$(1) ; + +pythonmods:: $$(pythonbuilddir)/$(1) ; + +endef + +define python_py_module_template + +$$(pythonbuilddir)/$(1): $(2) ; + mkdir -p $$(@D) + cp $$< $$@ + +$(call python_module_template,$(1)) + +endef + +# Python C module +# Arguments: Module path, object files +define python_c_module_template + +$$(pythonbuilddir)/$(1): $(2) ; + @echo Linking $$@ + @mkdir -p $$(@D) + @$$(MDLD) $$(LDFLAGS) $$(MDLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) + +$(call python_module_template,$(1)) +endef + +# Swig extensions +swig:: pythonmods + +.SUFFIXES: _wrap.c .i + +.i_wrap.c: + [ "$(SWIG)" == "no" ] || $(SWIG) -O -Wall -I$(srcdir)/scripting/swig -python -keyword $< + +realdistclean:: + @echo "Removing SWIG output files" + # FIXME: Remove _wrap.c files + +pythonmods:: + +clean:: + @echo "Removing python modules" + @rm -rf $(pythonbuilddir) + +pydoctor:: pythonmods + LD_LIBRARY_PATH=bin/shared PYTHONPATH=$(pythonbuilddir) pydoctor --project-name=Samba --project-url=http://www.samba.org --make-html --docformat=restructuredtext --add-package $(pythonbuilddir)/samba diff --git a/source4/build/make/rules.mk b/source4/build/make/rules.mk new file mode 100644 index 0000000000..faefb4e323 --- /dev/null +++ b/source4/build/make/rules.mk @@ -0,0 +1,288 @@ +# Rules file for Samba 4 +# This relies on GNU make. +# +# Dependencies command +DEPENDS = $(CC) -M -MG -MP -MT $(<:.c=.o) -MT $@ \ + $(CFLAGS) $(CPPFLAGS) $< -o $@ +# Dependencies for host objects +HDEPENDS = $(CC) -M -MG -MP -MT $(<:.c=.ho) -MT $@ \ + $(HOSTCC_FLAGS) $(CPPFLAGS) $< -o $@ +# Dependencies for precompiled headers +PCHDEPENDS = $(CC) -M -MG -MT include/includes.h.gch -MT $@ \ + $(CFLAGS) $(CPPFLAGS) $< -o $@ + +# Run a static analysis checker +CHECK = $(CC_CHECKER) $(CFLAGS) $(PICFLAG) $(CPPLAGS) -c $< -o $@ + +# Run the configured compiler +COMPILE = $(CC) $(CFLAGS) $(PICFLAG) \ + $(CPPFLAGS) \ + -c $< -o $@ + +# Run the compiler for the build host +HCOMPILE = $(HOSTCC) $(HOSTCC_FLAGS) $(CPPFLAGS) -c $< -o $@ + +# Precompile headers +PCHCOMPILE = @$(CC) -Ilib/replace \ + $(CFLAGS) $(PICFLAG) $(CPPFLAGS) -c $< -o $@ + +# Partial linking +PARTLINK = @$(PROG_LD) -r + +make_utility_dir = $(srcdir)/build/make/ + +include/config.h: + @echo "include/config.h not present" + @echo "You need to rerun ./autogen.sh and ./configure" + @/bin/false + +pch:: + +clean:: clean_pch + @echo Removing objects + @-find . -name '*.o' -exec rm -f '{}' \; + @echo Removing hostcc objects + @-find . -name '*.ho' -exec rm -f '{}' \; + @echo Removing binaries + @-rm -f $(BIN_PROGS) $(SBIN_PROGS) $(BINARIES) $(TORTURE_PROGS) + @echo Removing libraries + @-rm -f $(STATIC_LIBS) $(SHARED_LIBS) + @-rm -f bin/static/*.a bin/shared/*.$(SHLIBEXT) bin/mergedobj/*.o + @echo Removing modules + @-rm -f bin/modules/*/*.$(SHLIBEXT) + @-rm -f bin/*_init_module.c + @echo Removing dummy targets + @-rm -f bin/.*_* + @echo Removing generated files + @-rm -f bin/*_init_module.c + @-rm -rf librpc/gen_* + @echo Removing proto headers + @-rm -f $(PROTO_HEADERS) + +distclean:: clean + -rm -f include/config.h include/config_tmp.h include/build.h + -rm -f data.mk + -rm -f config.status + -rm -f config.log config.cache + -rm -f config.pm config.mk + -rm -f $(PC_FILES) + +removebackup:: + -rm -f *.bak *~ */*.bak */*~ */*/*.bak */*/*~ */*/*/*.bak */*/*/*~ + +realdistclean:: distclean removebackup + -rm -f include/config_tmp.h.in + -rm -f version.h + -rm -f configure + -rm -f $(MANPAGES) + +check:: test + +unused_macros: + $(srcdir)/script/find_unused_macros.pl `find . -name "*.[ch]"` | sort + +# Create a static library +%.a: + @echo Linking $@ + @rm -f $@ + @mkdir -p $(@D) + @$(STLD) $(STLD_FLAGS) $@ $^ + +############################################################################### +# Templates +############################################################################### + +# Partially link +# Arguments: target object file, source object files +define partial_link_template +$(1): $(2) ; + @echo Partially linking $$@ + @mkdir -p $$(@D) + $$(PARTLINK) -o $$@ $$^ +endef + +# Link a binary +# Arguments: target file, depends, flags +define binary_link_template +$(1): $(2) ; + @echo Linking $$@ + @$$(BNLD) $$(BNLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) +endef + +# Link a host-machine binary +# Arguments: target file, depends, flags +define host_binary_link_template +$(1): $(2) ; + @echo Linking $$@ + @$$(HOSTLD) $$(HOSTLD_FLAGS) -L$${builddir}/bin/static -o $$@ $$(INSTALL_LINK_FLAGS) $(3) +endef + +# Create a prototype header +# Arguments: header file, c files +define proto_header_template +$(1): $(2) ; + @echo "Creating $$@" + @$$(PERL) $$(srcdir)/script/mkproto.pl --srcdir=$$(srcdir) --builddir=$$(builddir) --public=/dev/null --private=$$@ $$^ +endef + +# Shared module +# Arguments: Target, dependencies, objects +define shared_module_template + +$(1): $(2) ; + @echo Linking $$@ + @mkdir -p $$(@D) + @$$(MDLD) $$(LDFLAGS) $$(MDLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) + +endef + +# Shared library +# Arguments: Target, dependencies, link flags, soname +define shared_library_template +$(1): $(2) + @echo Linking $$@ + @mkdir -p $$(@D) + @$$(SHLD) $$(LDFLAGS) $$(SHLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) \ + $(3) \ + $$(if $$(SONAMEFLAG), $$(SONAMEFLAG)$(notdir $(4))) + +ifneq ($(notdir $(1)),$(notdir $(4))) +$(4): $(1) + @echo "Creating symbolic link for $$@" + @ln -fs $$(&2;\ + echo "$(HCOMPILE)" 1>&2;\ + $(HCOMPILE) >/dev/null 2>&1 + +.h.h.gch: + @echo "Precompiling $<" + @$(PCHCOMPILE) + +.y.c: + @echo "Building $< with $(YACC)" + @-$(make_utility_dir)/yacc_compile.sh "$(YACC)" "$<" "$@" + +.l.c: + @echo "Building $< with $(LEX)" + @-$(make_utility_dir)/script/lex_compile.sh "$(LEX)" "$<" "$@" + +%.a: + @echo Linking $@ + @rm -f $@ + @mkdir -p $(@D) + @$(STLD) $(STLD_FLAGS) $@ $^ + + +DOCBOOK_MANPAGE_URL = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl + +.1.xml.1: + $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< + +.3.xml.3: + $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< + +.5.xml.5: + $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< + +.7.xml.7: + $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< + +.8.xml.8: + $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< + +dist:: idl_full manpages configure distclean + +configure: + ./autogen.sh + +showflags:: + @echo 'Samba will be compiled with flags:' + @echo ' CPP = $(CPP)' + @echo ' CPPFLAGS = $(CPPFLAGS)' + @echo ' CC = $(CC)' + @echo ' CFLAGS = $(CFLAGS)' + @echo ' PICFLAG = $(PICFLAG)' + @echo ' BNLD = $(BNLD)' + @echo ' BNLD_FLAGS = $(BNLD_FLAGS)' + @echo ' STLD = $(STLD)' + @echo ' STLD_FLAGS = $(STLD_FLAGS)' + @echo ' SHLD = $(SHLD)' + @echo ' SHLD_FLAGS = $(SHLD_FLAGS)' + @echo ' MDLD = $(MDLD)' + @echo ' MDLD_FLAGS = $(MDLD_FLAGS)' + @echo ' SHLIBEXT = $(SHLIBEXT)' + +etags: + etags `find $(srcdir) -name "*.[ch]"` + +ctags: + ctags `find $(srcdir) -name "*.[ch]"` diff --git a/source4/build/make/yacc_compile.sh b/source4/build/make/yacc_compile.sh new file mode 100755 index 0000000000..a56a51da0a --- /dev/null +++ b/source4/build/make/yacc_compile.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +YACC="$1" +SRC="$2" +DEST="$3" + +dir=`dirname $SRC` +file=`basename $SRC` +base=`basename $SRC .y` +if [ -z "$YACC" ]; then + # if $DEST is more recent than $SRC, we can just touch + # otherwise we touch but print out warnings + if [ -r $DEST ]; then + if [ x`find $SRC -newer $DEST -print` = x$SRC ]; then + echo "warning: yacc not found - cannot generate $SRC => $DEST" >&2 + echo "warning: yacc not found - only updating the timestamp of $DEST" >&2 + fi + touch $DEST; + exit; + fi + echo "error: yacc not found - cannot generate $SRC => $DEST" >&2 + exit 1; +fi +# if $DEST is more recent than $SRC, we can just touch +if [ -r $DEST ]; then + if [ x`find $SRC -newer $DEST -print` != x$SRC ]; then + touch $DEST; + exit; + fi +fi +TOP=`pwd` +if cd $dir && $YACC -d $file; then + if [ -r y.tab.h -a -r y.tab.c ];then + #echo "info: move files" + sed -e "/^#/!b" -e "s|y\.tab\.h|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.h > $base.h + sed -e "s|y\.tab\.c|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.c > $base.c + rm -f y.tab.c y.tab.h + elif [ ! -r $base.h -a ! -r $base.c]; then + echo "$base.h nor $base.c generated." + exit 1 + fi +fi +cd $TOP diff --git a/source4/dynconfig.mk b/source4/dynconfig.mk index aa0565cd7a..ba9c5467ba 100644 --- a/source4/dynconfig.mk +++ b/source4/dynconfig.mk @@ -21,5 +21,4 @@ PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \ dynconfig.o: dynconfig.c Makefile @echo Compiling $< - @$(CC) $(CFLAGS) $(CPPFLAGS) $(PICFLAG) \ - $(PATH_FLAGS) -c $< -o $@ + @$(CC) $(CFLAGS) $(CPPFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@ diff --git a/source4/rules.mk b/source4/rules.mk deleted file mode 100644 index 5f91f8132e..0000000000 --- a/source4/rules.mk +++ /dev/null @@ -1,191 +0,0 @@ -# Dependencies command -DEPENDS = $(CC) -M -MG -MP -MT $(<:.c=.o) -MT $@ \ - $(CFLAGS) $(CPPFLAGS) $< -o $@ -# Dependencies for host objects -HDEPENDS = $(CC) -M -MG -MP -MT $(<:.c=.ho) -MT $@ \ - $(HOSTCC_FLAGS) $(CPPFLAGS) $< -o $@ -# Dependencies for precompiled headers -PCHDEPENDS = $(CC) -M -MG -MT include/includes.h.gch -MT $@ \ - $(CFLAGS) $(CPPFLAGS) $< -o $@ - -# Run a static analysis checker -CHECK = $(CC_CHECKER) $(CFLAGS) $(PICFLAG) $(CPPLAGS) -c $< -o $@ - -# Run the configured compiler -COMPILE = $(CC) $(CFLAGS) $(PICFLAG) \ - $(CPPFLAGS) \ - -c $< -o $@ - -# Run the compiler for the build host -HCOMPILE = $(HOSTCC) $(HOSTCC_FLAGS) $(CPPFLAGS) -c $< -o $@ - -# Precompile headers -PCHCOMPILE = @$(CC) -Ilib/replace \ - $(CFLAGS) $(PICFLAG) $(CPPFLAGS) -c $< -o $@ - -# Partial linking -PARTLINK = @$(PROG_LD) -r - -include/config.h: - @echo "include/config.h not present" - @echo "You need to rerun ./autogen.sh and ./configure" - @/bin/false - -$(srcdir)/version.h: $(srcdir)/VERSION - @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ - -regen_version:: - @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ - -clean_pch:: - @echo "Removing precompiled headers" - @-rm -f include/includes.h.gch - -pch:: clean_pch include/includes.h.gch - -clean:: clean_pch - @echo Removing objects - @-find . -name '*.o' -exec rm -f '{}' \; - @echo Removing hostcc objects - @-find . -name '*.ho' -exec rm -f '{}' \; - @echo Removing binaries - @-rm -f $(BIN_PROGS) $(SBIN_PROGS) $(BINARIES) $(TORTURE_PROGS) - @echo Removing libraries - @-rm -f $(STATIC_LIBRARIES) $(SHARED_LIBRARIES) - @-rm -f bin/static/*.a bin/shared/*.$(SHLIBEXT) bin/mergedobj/*.o - @echo Removing modules - @-rm -f bin/modules/*/*.$(SHLIBEXT) - @-rm -f bin/*_init_module.c - @echo Removing dummy targets - @-rm -f bin/.*_* - @echo Removing generated files - @-rm -f bin/*_init_module.c - @-rm -rf librpc/gen_* - @echo Removing proto headers - @-rm -f $(PROTO_HEADERS) - -distclean:: clean - -rm -f include/config.h include/config_tmp.h include/build.h - -rm -f data.mk - -rm -f config.status - -rm -f config.log config.cache - -rm -f config.pm config.mk - -rm -f $(PC_FILES) - -removebackup:: - -rm -f *.bak *~ */*.bak */*~ */*/*.bak */*/*~ */*/*/*.bak */*/*/*~ - -realdistclean:: distclean removebackup - -rm -f include/config_tmp.h.in - -rm -f version.h - -rm -f configure - -rm -f $(MANPAGES) - -check:: test - -unused_macros: - $(srcdir)/script/find_unused_macros.pl `find . -name "*.[ch]"` | sort - -# Create a static library -%.a: - @echo Linking $@ - @rm -f $@ - @mkdir -p $(@D) - @$(STLD) $(STLD_FLAGS) $@ $^ - -############################################################################### -# File types -############################################################################### - -.SUFFIXES: .x .c .et .y .l .d .o .h .h.gch .a .$(SHLIBEXT) .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml .8 .8.xml .ho .idl .hd - -.c.d: - @echo "Generating dependencies for $<" - @$(DEPENDS) - -.c.hd: - @echo "Generating host-compiler dependencies for $<" - @$(HDEPENDS) - -include/includes.d: include/includes.h - @echo "Generating dependencies for $<" - @$(PCHDEPENDS) - -.c.o: - @if test -n "$(CC_CHECKER)"; then \ - echo "Checking $< with '$(CC_CHECKER)'"; \ - $(CHECK) ; \ - fi - @echo "Compiling $<" - @-mkdir -p `dirname $@` - @$(COMPILE) && exit 0 ; \ - echo "The following command failed:" 1>&2;\ - $(COMPILE) >/dev/null 2>&1 - - -# echo "$(COMPILE)" 1>&2;\ - -.c.ho: - @echo "Compiling $< with host compiler" - @-mkdir -p `dirname $@` - @$(HCOMPILE) && exit 0;\ - echo "The following command failed:" 1>&2;\ - echo "$(HCOMPILE)" 1>&2;\ - $(HCOMPILE) >/dev/null 2>&1 - -.h.h.gch: - @echo "Precompiling $<" - @$(PCHCOMPILE) - -.y.c: - @echo "Building $< with $(YACC)" - @-$(srcdir)/script/yacc_compile.sh "$(YACC)" "$<" "$@" - -.l.c: - @echo "Building $< with $(LEX)" - @-$(srcdir)/script/lex_compile.sh "$(LEX)" "$<" "$@" - -DOCBOOK_MANPAGE_URL = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl - -.1.xml.1: - $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< - -.3.xml.3: - $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< - -.5.xml.5: - $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< - -.7.xml.7: - $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< - -.8.xml.8: - $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $< - -dist:: idl_full manpages configure distclean - -configure: - ./autogen.sh - -showflags:: - @echo 'Samba will be compiled with flags:' - @echo ' CPP = $(CPP)' - @echo ' CPPFLAGS = $(CPPFLAGS)' - @echo ' CC = $(CC)' - @echo ' CFLAGS = $(CFLAGS)' - @echo ' PICFLAG = $(PICFLAG)' - @echo ' BNLD = $(BNLD)' - @echo ' BNLD_FLAGS = $(BNLD_FLAGS)' - @echo ' STLD = $(STLD)' - @echo ' STLD_FLAGS = $(STLD_FLAGS)' - @echo ' SHLD = $(SHLD)' - @echo ' SHLD_FLAGS = $(SHLD_FLAGS)' - @echo ' MDLD = $(MDLD)' - @echo ' MDLD_FLAGS = $(MDLD_FLAGS)' - @echo ' SHLIBEXT = $(SHLIBEXT)' - -etags: - etags `find $(srcdir) -name "*.[ch]"` - -ctags: - ctags `find $(srcdir) -name "*.[ch]"` diff --git a/source4/script/lex_compile.sh b/source4/script/lex_compile.sh deleted file mode 100755 index 9bba7257b1..0000000000 --- a/source4/script/lex_compile.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -LEX="$1" -SRC="$2" -DEST="$3" -shift 3 -ARGS="$*" - -dir=`dirname $SRC` -file=`basename $SRC` -base=`basename $SRC .l` -if [ -z "$LEX" ]; then - # if $DEST is more recent than $SRC, we can just touch - # otherwise we touch but print out warnings - if [ -r $DEST ]; then - if [ x`find $SRC -newer $DEST -print` = x$SRC ]; then - echo "warning: lex not found - cannot generate $SRC => $DEST" >&2 - echo "warning: lex not found - only updating the timestamp of $DEST" >&2 - fi - touch $DEST; - exit; - fi - echo "error: lex not found - cannot generate $SRC => $DEST" >&2 - exit 1; -fi -# if $DEST is more recent than $SRC, we can just touch -if [ -r $DEST ]; then - if [ x`find $SRC -newer $DEST -print` != x$SRC ]; then - touch $DEST; - exit; - fi -fi -TOP=`pwd` -if cd $dir && $LEX $ARGS $file; then - if [ -r $base.yy.c ];then - # we must guarantee that config.h comes first - echo "#include \"config.h\"" > $base.c - sed -e "s|$base\.yy\.c|$DEST|" $base.yy.c >> $base.c - rm -f $base.yy.c - elif [ -r $base.c ];then - # we must guarantee that config.h comes first - mv $base.c $base.c.tmp - echo "#include \"config.h\"" > $base.c - sed -e "s|$base\.yy\.c|$DEST|" $base.c.tmp >> $base.c - rm -f $base.c.tmp - elif [ ! -r base.c ]; then - echo "$base.c nor $base.yy.c generated." - exit 1 - fi -fi -cd $TOP diff --git a/source4/script/yacc_compile.sh b/source4/script/yacc_compile.sh deleted file mode 100755 index a56a51da0a..0000000000 --- a/source4/script/yacc_compile.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -YACC="$1" -SRC="$2" -DEST="$3" - -dir=`dirname $SRC` -file=`basename $SRC` -base=`basename $SRC .y` -if [ -z "$YACC" ]; then - # if $DEST is more recent than $SRC, we can just touch - # otherwise we touch but print out warnings - if [ -r $DEST ]; then - if [ x`find $SRC -newer $DEST -print` = x$SRC ]; then - echo "warning: yacc not found - cannot generate $SRC => $DEST" >&2 - echo "warning: yacc not found - only updating the timestamp of $DEST" >&2 - fi - touch $DEST; - exit; - fi - echo "error: yacc not found - cannot generate $SRC => $DEST" >&2 - exit 1; -fi -# if $DEST is more recent than $SRC, we can just touch -if [ -r $DEST ]; then - if [ x`find $SRC -newer $DEST -print` != x$SRC ]; then - touch $DEST; - exit; - fi -fi -TOP=`pwd` -if cd $dir && $YACC -d $file; then - if [ -r y.tab.h -a -r y.tab.c ];then - #echo "info: move files" - sed -e "/^#/!b" -e "s|y\.tab\.h|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.h > $base.h - sed -e "s|y\.tab\.c|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.c > $base.c - rm -f y.tab.c y.tab.h - elif [ ! -r $base.h -a ! -r $base.c]; then - echo "$base.h nor $base.c generated." - exit 1 - fi -fi -cd $TOP diff --git a/source4/scripting/python/config.mk b/source4/scripting/python/config.mk index 09c77813ca..22e9a2ff7b 100644 --- a/source4/scripting/python/config.mk +++ b/source4/scripting/python/config.mk @@ -15,24 +15,9 @@ OBJ_FILES = uuidmodule.o PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS SWIG_FILE = misc.i -# Swig extensions -swig:: pythonmods - -.SUFFIXES: _wrap.c .i - -.i_wrap.c: - [ "$(SWIG)" = "no" ] || $(SWIG) -O -Wall -I$(srcdir)/scripting/swig -python -keyword $< - -realdistclean:: - @echo "Removing SWIG output files" - # FIXME: Remove _wrap.c files - -pythonmods:: $(PYTHON_DSOS) $(PYTHON_PYS) - PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py bin/python/tdb.py bin/python/security.py bin/python/events.py bin/python/net.py -pydoctor:: pythonmods - LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --project-name=Samba --make-html --docformat=restructuredtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES)) +pythonmods:: $(PYTHON_PYS) $(PYTHON_MODS) bin/python/%.py: mkdir -p $(@D) -- cgit