# 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


POSTGRES_IMP= postgres.imp

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

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

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

%$(DLSUFFIX): %.o %.exp
	$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SL) -o $@ $*.o -Wl,-bE:$*.exp $(SHLIB_LINK)
