mirror of
https://github.com/postgres/postgres.git
synced 2025-11-19 13:42:17 +03:00
Improved parallel make support
Replace for loops in makefiles with proper dependencies. Parallel make can now span across directories. Also, make -k and make -q work properly. GNU make 3.80 or newer is now required.
This commit is contained in:
@@ -14,5 +14,4 @@ include $(top_builddir)/src/Makefile.global
|
||||
|
||||
SUBDIRS = libpq ecpg
|
||||
|
||||
all install installdirs uninstall distprep clean distclean maintainer-clean:
|
||||
@for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
|
||||
$(recurse)
|
||||
|
||||
@@ -2,19 +2,13 @@ subdir = src/interfaces/ecpg
|
||||
top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
all install installdirs uninstall distprep:
|
||||
$(MAKE) -C include $@
|
||||
$(MAKE) -C pgtypeslib $@
|
||||
$(MAKE) -C ecpglib $@
|
||||
$(MAKE) -C compatlib $@
|
||||
$(MAKE) -C preproc $@
|
||||
SUBDIRS = include pgtypeslib ecpglib compatlib preproc
|
||||
|
||||
$(recurse)
|
||||
|
||||
all-compatlib-recursive: all-ecpglib-recursive
|
||||
|
||||
clean distclean maintainer-clean:
|
||||
$(MAKE) -C include $@
|
||||
$(MAKE) -C pgtypeslib $@
|
||||
$(MAKE) -C ecpglib $@
|
||||
$(MAKE) -C compatlib $@
|
||||
$(MAKE) -C preproc $@
|
||||
$(MAKE) -C test clean
|
||||
|
||||
check checktcp installcheck: all
|
||||
|
||||
@@ -23,6 +23,7 @@ override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
|
||||
SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
|
||||
$(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_PREREQS = submake-ecpglib submake-pgtypeslib
|
||||
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
||||
@@ -33,6 +34,14 @@ OBJS= informix.o $(filter snprintf.o, $(LIBOBJS))
|
||||
|
||||
all: all-lib
|
||||
|
||||
.PHONY: submake-ecpglib submake-pgtypeslib
|
||||
|
||||
submake-ecpglib:
|
||||
$(MAKE) -C $(top_builddir)/src/interfaces/ecpg/ecpglib all
|
||||
|
||||
submake-pgtypeslib:
|
||||
$(MAKE) -C $(top_builddir)/src/interfaces/ecpg/pgtypeslib all
|
||||
|
||||
# Shared library stuff
|
||||
include $(top_srcdir)/src/Makefile.shlib
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ OBJS += thread.o
|
||||
endif
|
||||
|
||||
SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_PREREQS = submake-libpq submake-pgtypeslib
|
||||
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
||||
@@ -42,12 +43,10 @@ ifeq ($(PORTNAME), win32)
|
||||
SHLIB_LINK += -lshfolder
|
||||
endif
|
||||
|
||||
all: libpq pgtypeslib all-lib
|
||||
all: all-lib
|
||||
|
||||
libpq:
|
||||
$(MAKE) -C $(top_builddir)/src/interfaces/libpq all
|
||||
|
||||
pgtypeslib:
|
||||
.PHONY: submake-pgtypeslib
|
||||
submake-pgtypeslib:
|
||||
$(MAKE) -C $(top_builddir)/src/interfaces/ecpg/pgtypeslib all
|
||||
|
||||
# Shared library stuff
|
||||
|
||||
@@ -30,11 +30,14 @@ OBJS= preproc.o type.o ecpg.o output.o parser.o \
|
||||
keywords.o c_keywords.o ecpg_keywords.o kwlookup.o ../ecpglib/typename.o descriptor.o variable.o \
|
||||
$(WIN32RES)
|
||||
|
||||
all: submake-libpgport ecpg
|
||||
all: ecpg
|
||||
|
||||
ecpg: $(OBJS)
|
||||
ecpg: $(OBJS) | submake-libpgport
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $^ $(LIBS) $(PTHREAD_LIBS) -o $@$(X)
|
||||
|
||||
../ecpglib/typename.o: ../ecpglib/typename.c
|
||||
$(MAKE) -C $(dir $@) $(notdir $@)
|
||||
|
||||
# pgc is compiled as part of preproc
|
||||
preproc.o: pgc.c
|
||||
|
||||
|
||||
Reference in New Issue
Block a user