# $Id: makefile.bso 11894 2001-10-23 22:18:36Z hubert $
#
#   Michael Seibel
#   Networks and Distributed Computing
#   Computing and Communications
#   University of Washington
#   Administration Builiding, AG-44
#   Seattle, Washington, 98195, USA
#   Internet: mikes@cac.washington.edu
#
#   Please address all bugs and comments to "pine-bugs@cac.washington.edu"
#
#
#   Pine and Pico are registered trademarks of the University of Washington.
#   No commercial use of these trademarks may be made without prior written
#   permission of the University of Washington.
#
#   Pine, Pico, and Pilot software and its included text are Copyright
#   1989-1999 by the University of Washington.
#
#   The full text of our legal notices is contained in the file called
#   CPYRIGHT, included with this distribution.
#

#
# Makefile for OpenBSD shared-lib version of the PINE composer library and 
# stand-alone editor pico.
#
# Port Contributor: Marco S Hyman <marc@snafu.org>
#

RM=          rm -f
LN=          ln -s
MAKE=        make
OPTIMIZE=    # -O
PROFILE=     # -pg
DEBUG=       -DDEBUG # -g

STDCFLAGS=	-DBSDI -DBSDI2 -DPOSIX -DJOB_CONTROL -DMOUSE
CFLAGS+=        $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(STDCFLAGS)

# switches for library building
LIBCMD=		ar
LIBARGS=	ru
RANLIB=		ranlib

LIBS=		$(EXTRALDFLAGS) -ltermcap

OFILES=		attach.o basic.o bind.o browse.o buffer.o \
		composer.o display.o file.o fileio.o line.o pico_os.o \
		pico.o random.o region.o search.o \
		window.o word.o

SOFILES=	${OFILES:.o=.so}

HFILES=		headers.h estruct.h edef.h efunc.h pico.h os.h

# Need this for the shared library rule to work correctly
.SUFFIXES: .o .so

#
# dependencies for the Unix versions of pico and libpico.a
#
all:		pico pilot
pico pilot:	libpico.a

pico:		main.o
		$(CC) $(CFLAGS) main.o -L. -lpico $(LIBS) -o pico

pilot:		pilot.o
		$(CC) $(CFLAGS) pilot.o -L. -lpico $(LIBS) -o pilot

.c.so:		; $(CC) -fpic -DPIC -c $(CFLAGS) ${@:.so=.c} -o $@

.c.o:		; $(CC) -c $(CFLAGS) $*.c

libpico.a:	$(OFILES)
		$(LIBCMD) $(LIBARGS) libpico.a $(OFILES)
		$(RANLIB) libpico.a

libpico.so.1.3:	$(SOFILES)
		ld -Bshareable -x -o libpico.so.1.3 $(SOFILES)

clean:
		rm -f *.a *.so.1.3 *.o *.so *~ pico_os.c os.h pico pilot
		cd osdep; $(MAKE) clean; cd ..

os.h:		osdep/os-bso.h
		$(RM) os.h
		$(LN) osdep/os-bso.h os.h

pico_os.c:	osdep/os-bso.c
		$(RM) pico_os.c
		$(LN) osdep/os-bso.c pico_os.c

$(SOFILES) $(OFILES) main.o pilot.o:	$(HFILES)
pico.o:				ebind.h

osdep/os-bso.c:	osdep/header osdep/unix osdep/read.sel osdep/raw.ios \
		osdep/spell.unx osdep/term.cap \
		osdep/os-bso.ic
		cd osdep; $(MAKE) includer os-bso.c; cd ..
