# vim:noexpandtab:softtabstop=2:tabstop=2:shiftwidth=2:nowrap
# Copyright (c) 2015-2016, iwrite authors
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

RANLIB=ranlib

UNAME:= $(shell uname)

INC= -I../include

ifeq ($(UNAME), Linux)

INC+= -I/usr/include/postgresql/server
INC+= -I/usr/include/pgsql/server

# postgressql 9.4 (Debian)
INC+= -I/usr/include/postgresql
INC+= -I/usr/include/postgresql/9.4/server

LDFLAGS= -lpq

endif

ifeq ($(UNAME), NetBSD)

INC+= -I/usr/pkg/include/
INC+= -I/usr/pkg/include/postgresql/server
LDFLAGS= -L /usr/pkg/lib -lpq

endif

ifeq ($(UNAME), OpenBSD)

INC+= -I /usr/local/include/postgresql/
INC+= -I /usr/local/include/postgresql/server/
LDFLAGS= -L /usr/local/lib -lpq

endif

ifeq ($(UNAME), FreeBSD)

INC+= -I /usr/local/include
INC+= -I /usr/local/include/postgresql/
INC+= -I /usr/local/include/postgresql/server/
LDFLAGS= -L /usr/local/lib -lpq

endif

CXXFLAGS+=-fPIC -Wall -ansi -pedantic -Wno-variadic-macros -ggdb ${INC}

OBJECTS=\
	iwsql_attr_delete.o\
	iwsql_connect.o\
	iwsql_delete.o\
	iwsql_error.o\
	iwsql_exec.o\
	iwsql_new.o\
	iwsql_next.o\
	iwsql_result.o\
	iwsql_oid_translate.o

includes = ${wildcard *.h}

.PHONY: libs
libs: libiwsql_pq.so libiwsql_pq.a

libiwsql_pq.so: ${OBJECTS}
	${CXX} -shared -o $@ $? ${LDFLAGS}

libiwsql_pq.a: ${OBJECTS}
	${AR} rvc $@ $?
	${RANLIB} $@

%.o : %.cxx ${includes}
	${CXX} -c ${CXXFLAGS} -o $@ $< 2> $@.err

clean:
	rm -f *.o
	rm -f *.o.err
	rm -f *.a
	rm -f *.so
