#------------------------------------------------------------------------- # # Makefile-- # Makefile for Postgres 64-bit integer extensions # # Thomas G. Lockhart # # This is a first attempt at 64-bit arithmetic for Postgres. # It takes advantage of "long long int" support in GNU C on 32-bit machines. # The modules are built and installed as user-defined types, # so destination directories are pointing away from the standard # Postgres areas. You will need to modify the paths to fit your machine. # # On my Linux box, I had to find an extra library for the division function (?). # For Alpha boxes, both the DEC and GNU compilers should need "long int" only. # #------------------------------------------------------------------------- ifndef PGDIR PGDIR= /opt/postgres/current endif SRCDIR= $(PGDIR)/src include $(SRCDIR)/Makefile.global # Comment out this re-declaration of LIBDIR # if you are installing as the postgres superuser # into a specific database or into template1. LIBDIR= /home/tgl/lib CFLAGS+= -I$(PGDIR)/include -I$(PGDIR)/src/include -I$(LIBPQDIR) # This extra library is for the 64-bit division routine on my Linux box # and probably will need to be commented-out for most other platforms. CLIBS+= /usr/lib/gcc-lib/i486-linux/2.7.2/libgcc.a TARGETS= int8.sql int8$(DLSUFFIX) all: $(TARGETS) int8$(DLSUFFIX): int8.o $(CC) -shared -o int8$(DLSUFFIX) int8.o $(CLIBS) install: $(MAKE) all cp -p int8$(DLSUFFIX) $(LIBDIR) %.sql: %.source if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ if [ -z "$$USER" ]; then USER=`whoami`; fi; \ if [ -z "$$USER" ]; then echo 'Cannot deduce $$USER.'; exit 1; fi; \ rm -f $@; \ C=`pwd`; \ O=$C; \ if [ -d ${LIBDIR} ]; then O=${LIBDIR}; fi; \ sed -e "s:_CWD_:$$C:g" \ -e "s:_OBJWD_:$$O:g" \ -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ -e "s/_USER_/$$USER/g" < $< > $@ clean: rm -f $(TARGETS) int8.o