# MAKE_EXPORTS is required for svr4 loaders that want a file of
# symbol names to tell them what to export/import.
MAKE_EXPORTS= true

RANLIB= touch
AROPT = crs

# -blibpath must contain ALL directories where we should look for libraries
libpath := $(shell echo $(subst -L,:,$(filter -L/%,$(LDFLAGS))) | sed -e's/ //g'):/usr/lib:/lib

ifeq ($(host_os), aix3.2.5)
	rpath = -L'$(rpathdir)'
else
	rpath = -Wl,-blibpath:'$(rpathdir)$(libpath)'
endif

DLSUFFIX = .so
ifeq ($(host_os), aix3.2.5)
ifneq ($(GCC), yes)
	LDFLAGS_SL += -e _nostart -H512 -bM:SRE
endif
else
	LDFLAGS_SL += -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
endif

# env var name to use in place of LD_LIBRARY_PATH
ld_library_path_var = LIBPATH


POSTGRES_IMP= postgres.imp

ifdef PGXS
BE_DLLLIBS= -Wl,-bI:$(pkglibdir)/$(POSTGRES_IMP)
else
BE_DLLLIBS= -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP)
endif

MKLDEXPORT_DIR=src/backend/port/aix
MKLDEXPORT=$(top_srcdir)/$(MKLDEXPORT_DIR)/mkldexport.sh

%.exp: %.o
	$(MKLDEXPORT) $^ >$@

# Rule for building a shared library from a single .o file
%$(DLSUFFIX): %.o %.exp
	$(CC) $(CFLAGS) $*.o $(LDFLAGS) $(LDFLAGS_SL) -o $@ -Wl,-bE:$*.exp $(BE_DLLLIBS)
