diff --git a/.gitattributes b/.gitattributes
index 05a10a9edd01b076d954eb871fa75497c0350ef6..1ced214a7ade3a1e188190f284488e61f400df86 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -455,6 +455,8 @@ testfont binary
 /src/pike_types.h foreign_ident
 /src/port.c foreign_ident
 /src/port.h foreign_ident
+/src/post_modules/Makefile.in foreign_ident
+/src/post_modules/configure.in foreign_ident
 /src/preprocessor.h foreign_ident
 /src/program.c foreign_ident
 /src/program.h foreign_ident
diff --git a/src/post_modules/Makefile.in b/src/post_modules/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..be7a52908b5146f3bf8c480bc1829e6893ed2ed3
--- /dev/null
+++ b/src/post_modules/Makefile.in
@@ -0,0 +1,104 @@
+# $Id: Makefile.in,v 1.1 1999/11/07 01:33:42 per Exp $
+
+@SET_MAKE@
+
+CC=@CC@
+CPP=@CPP@
+SRCDIR=@srcdir@
+AR=@AR@
+
+MODULES=@subdirs@
+MODULE_SEGMENTS=@MODULE_SEGMENTS@
+MODULE_LINKOPTS=@MODULE_LINKOPTS@
+
+MAKE_FLAGS = "prefix=$(prefix)" "exec_prefix=$(exec_prefix)" "CC=$(CC)" "OTHERFLAGS=$(OTHERFLAGS)" "TMP_BINDIR=$(TMP_BINDIR)" "TMP_LIBDIR=$(TMP_LIBDIR)" "RUNPIKE=$(RUNPIKE)" "DEFINES=$(DEFINES)" "INSTALL=$(INSTALL)" "AR=$(AR)" LDFLAGS="$(LDFLAGS)" "CC=$(CC)" "MAKE=$(MAKE)" "NOOPTFLAGS=$(NOOPTFLAGS)"
+
+all: linker_options modlist.h modlist_headers.h
+
+$(MODULE_SEGMENTS) $(MODULE_LINKOPTS): modules
+
+force:
+	@:
+
+$(MODULES): force
+	  @echo Making $@; \
+	  ( cd $@; \
+	    rm remake >/dev/null 2>&1 || : ; \
+	    $(MAKE) $(MAKE_FLAGS) MODNAME=$@ || \
+	      ( test -f remake && $(MAKE) $(MAKE_FLAGS) MODNAME=$@ ) \
+	  ) || exit $$?;
+
+modules: $(MODULES)
+
+modlist.h: $(MODULE_SEGMENTS)
+	( for a in $(MODULES) ; do cat $$a/modlist_segment ; done ; ) >modlist.h
+
+modlist_headers.h: $(MODULE_SEGMENTS)
+	( for a in $(MODULES) ; do \
+	    cat $$a/modlist_segment; \
+	  done \
+	) | sed -e 's/^.*{.*,\(.*\),\(.*\).*}.*$$/void \1(void),\2(void);/' >modlist_headers.h
+
+linker_options: $(MODULE_LINKOPTS)
+	( for a in $(MODULES) ; do \
+	    cat $$a/linker_options; \
+	  done \
+	) >linker_options
+
+Makefile: $(SRCDIR)/Makefile.in $(SRCDIR)/dependencies ./config.status
+	CONFIG_FILES=Makefile CONFIG_HEADERS="" ./config.status
+	touch remake
+	@echo "Run make again" >&2
+	@exit 1
+
+depend:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; ${MAKE} $(MAKE_FLAGS) MODNAME=$$a depend ) ; \
+	done
+
+install:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; ${MAKE} $(MAKE_FLAGS) MODNAME=$$a install ) ; \
+	done
+
+clean:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; ${MAKE} $(MAKE_FLAGS) MODNAME=$$a clean ) ; \
+	done
+	-rm -f linker_options modlist.h modlist_headers.h
+
+verify:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; \
+	    echo verifying $$a ; \
+	    ${MAKE} $(MAKE_FLAGS) MODNAME=$$a verify \
+	  ) || exit $$? ; \
+	done
+
+verbose_verify:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; \
+	    ${MAKE} $(MAKE_FLAGS) MODNAME=$$a verbose_verify \
+	  ) || exit $$? ; \
+	done
+
+fdtestsuites:
+	for a in $(MODULES) ; do \
+	  echo $$a ; \
+	  $(TMP_BINDIR)/mktestsuite $(SRCDIR)/$$a/testsuite.in >$$a/module_testsuite -DSRCDIR=$(SRCDIR)/$$a || exit $$? ; \
+	done	
+
+testsuites:
+	for a in $(MODULES) ; do \
+	  (cd $$a; make module_testsuite) ; \
+	done
+
+extra_tests:
+	for a in $(MODULES) ; do \
+	  ( cd $$a ; \
+	    ${MAKE} $(MAKE_FLAGS) MODNAME=$$a extra_tests \
+	  ) || exit $$? ; \
+	done
+
+
+@dependencies@
diff --git a/src/post_modules/configure.in b/src/post_modules/configure.in
new file mode 100644
index 0000000000000000000000000000000000000000..891366349b6182446bd5ce463ed89b9d48dbecbb
--- /dev/null
+++ b/src/post_modules/configure.in
@@ -0,0 +1,33 @@
+# $Id: configure.in,v 1.1 1999/11/07 01:33:42 per Exp $
+AC_INIT(Makefile.in)
+
+AC_SET_MAKE
+
+dirs=
+MODULE_LINKOBJS=
+MODULE_SEGMENTS=
+
+for a in `(cd $srcdir ; echo *)`
+do
+  if test "$a" != "CVS" -a "$a" != "RCS" ; then
+    if test -d "$srcdir/$a" ; then
+      yesno=`eval echo \\$with_$a`
+      if test "x${yesno-}" != xno ; then
+        dirs="$dirs $a"
+        MODULE_LINKOPTS="$MODULE_LINKOPTS $a/linker_options"
+        MODULE_SEGMENTS="$MODULE_SEGMENTS $a/modlist_headers"
+        module_names="$module_names $a"
+      fi
+    fi
+  fi
+done
+
+AC_SUBST(MODULE_LINKOPTS)
+AC_SUBST(MODULE_SEGMENTS)
+
+AC_SUBST_FILE(dependencies)
+dependencies=$srcdir/dependencies
+AC_CONFIG_SUBDIRS($dirs)
+
+AC_OUTPUT(Makefile,[],dirs="$module_names")
+