#
# Makefile	Makefile for Minicom on various systems.
#		You have to pick your system here. Just
#		uncomment it and let it compile.
#
# Version	@(#) Makefile 1.60 (1994-01-14) MvS
#
# Bugs		The Linux, Coherent 4.2, Sun and BSD versions
#		have been tested and are known to work.
#		For others, your mileage may vary...
#
#

# Where to install things for Linux/PRO
# BINDIR	= /usr/opt/bin
# LIBDIR	= /conf/opt/minicom
# MANDIR	= /usr/opt/man/man1

# Where to install things for "normal" sites.
BINDIR	= /usr/local/bin
LIBDIR	= /usr/local/lib/minicom
MANDIR	= /usr/local/man/man1

# Take these compilation flags for Linux.
#FLAGS	= -Wall -D_POSIX_SOURCE -D_SYSV -D_SELECT	# Linux.
#PROGS	= minicom runscript
#LFLAGS	= -s
#LIBS	= -ltermcap
#CC	= cc
#O	= o

# Take these flags for BSD 4.3 (Apollo Domain/OS). Use the first FLAGS line.
# You can also try -D_POSIX_SOURCE, but combined with -D_NO_TERMIOS.
# For BSD/386, the Posix termios interface works fine so you can take
# the second FLAGS line. Also tested on SunOS 4.1.3.
#LFLAGS	= -s
#FLAGS	= -D_BSD43 -D_SELECT				# BSD style ioctls
#FLAGS	= -D_POSIX_SOURCE -D_BSD43 -D_SELECT 		# BSD with Posix termios
#FLAGS	= -D_POSIX_SOURCE -D_BSD43 -D_SELECT -DSUN	# Sun include nightmare
#PROGS	= minicom runscript
#LIBS	= -ltermcap
#CC	= cc
#O	= o

# These flags work for Coherent 4.2.
FLAGS	= -D_POSIX_SOURCE -D_SYSV -D_SELECT -D_COH42 -D_COHERENT -D_NO_TERMIOS
LFLAGS	= -s
PROGS	= minicom runscript
LIBS	= -ltermcap -lmisc
CC	= cc
O	= o

# ========== Everything below this line is not well-tested. ===========
# Take these flags for a SysV system (sysv/HPUX/ISC)
#FLAGS	= -D_SYSV		 			   # Generic Sysv
#FLAGS	= -D_SYSV -D_POSIX_SOURCE			   # Posix SysV
#FLAGS	= -D_POSIX_SOURCE -D_HPUX_SOURCE -D_SYSV -D_SELECT # HPUX
#FLAGS	= -D_SYSV -D_SVR2 -D_POSIX_SOURCE -D_NO_TERMIOS	   # Sysv R2, eg UnixPC
#FLAGS	= -Wall -D_SYSV -DISC -D_SYSV3 -D_POSIX_SOURCE -D_SELECT # ISC unix

# Only include the "keyserv" program if you don't have select()
#PROGS	= minicom runscript #keyserv
#LFLAGS	= -s
#LIBS	= -ltermcap
#LIBS	= -ltermcap -linet -lnsl_c -lcposix # ISC unix.
#CC	= cc
#O	= o

# Take these flags for Mark Williams' Coherent version 3.2 (286 version)
#FLAGS	= -D_COHERENT -D_COH3
#LFLAGS	= -s
#PROGS	= minicom runscript keyserv
#LIBS	= -lterm
#CC	= cc
#O	= o

# Take these flags for the PC Minix ACK compiler
#LFLAGS	= -i
#FLAGS	= -D_MINIX -D_POSIX_SOURCE -D_ACK -D_NO_TERMIOS
#PROGS	= minicom runscript keyserv
#LIBS	=
#CC	= cc
#O	= s

# Nothing should have to change beneath this line

SRCS	= minicom.c vt100.c config.c help.c updown.c \
	  fastsystem.c dial.c window.c wkeys.c ipc.c main.c \
	  keyserv.c windiv.c script.c sysdep1.c sysdep2.c \
	  rwconf.c

HDRS	= minicom.h window.h keyboard.h charmap.h config.h \
	  configsym.h patchlevel.h vt100.h port.h sysdep.h

OTHERS	= History Install Makefile Porting Readme Readme.rzsz Todo \
	  install.sh minicom.1 minicom.users runscript.1 saralogin \
	  scriptdemo unixlogin

MOBJS	= minicom.$(O) vt100.$(O) config.$(O) help.$(O) updown.$(O) \
	  fastsystem.$(O) dial.$(O) window.$(O) wkeys.$(O) ipc.$(O) \
	  windiv.$(O) sysdep1.$(O) sysdep2.$(O) rwconf.$(O) main.$(O)

KOBJS	= keyserv.$(O) wkeys.$(O) sysdep2.$(O)

SOBJS	= script.$(O)

CFLAGS	= $(FLAGS) -DLIBDIR=\"$(LIBDIR)\"

R	= $(ROOTDIR)

all:		$(PROGS)

minicom:	$(MOBJS)
		$(CC) $(LFLAGS) -o minicom $(MOBJS) $(LIBS)

keyserv:	$(KOBJS)
		$(CC) -o keyserv $(LFLAGS) $(KOBJS) $(LIBS)

runscript:	$(SOBJS)
		$(CC) -o runscript $(LFLAGS) $(SOBJS)

script.$(O):	script.c

keyserv.$(O):	keyserv.c $(HDRS)

minicom.$(O):	minicom.c $(HDRS)

main.$(O):	main.c $(HDRS)

windiv.$(O):	windiv.c $(HDRS)

vt100.$(O):	vt100.c $(HDRS)

config.$(O):	config.c $(HDRS)

fastsystem.$(O): fastsystem.c $(HDRS)

dial.$(O):	dial.c $(HDRS)

help.$(O):	help.c $(HDRS)

updown.$(O):	updown.c $(HDRS)

window.$(O):	window.c $(HDRS)

wkeys.$(O):	wkeys.c $(HDRS)

ipc.$(O):	ipc.c $(HDRS)

sysdep1.$(O):	sysdep1.c $(HDRS)

sysdep2.$(O):	sysdep2.c $(HDRS)

rwconf.$(O):	rwconf.c $(HDRS)

shar:
		@echo Creating shar archive..
		@shar $(SRCS) $(HDRS) $(OTHERS) > minicom.sh
		@echo Compressing..
		@rm -f minicom-1.60.sh.Z
		@compress -b13 minicom-1.60.sh
		@rm -f minicom-1.60.sh

tgz:
		@echo Creating gzipped tar archive..
		@tar cvfz minicom-1.60.tgz $(SRCS) $(HDRS) $(OTHERS)

tar:
		@echo Creating tar archive..
		@tar cvf minicom-1.60.tar $(SRCS) $(HDRS) $(OTHERS)
		@echo Compressing..
		@rm -f minicom-1.60.tar.Z
		@compress -b13 minicom-1.60.tar
		@rm -f minicom-1.60.tar

lzh:
		@echo Creating lharc archive..
		@rm -f minicom-1.60.lzh
		@lha a minicom-1.60.lzh $(SRCS) $(HDRS) $(OTHERS)
		@rm -f *.bak

install:	$(PROGS)
		sh install.sh $(R)$(LIBDIR) $(R)$(BINDIR) $(R)$(MANDIR)

clobber:
		rm -f *.$(O) minicom keyserv runscript minicom-1.60.*

clean:		
		rm -f *.$(O) minicom-1.60.*
