DESTS	= setcrystal sethdlc smmixer

CC = gcc
LD = gcc
CFLAGS = -Wall -Wstrict-prototypes -O2
LDFLAGS =
LIBS =
XLIBS 	= -lX11
XFLIBS	= -lforms -lX11 -lm

ifeq ($(strip $(ETC_DIR)),)
include ../Makefile.include
endif

XINC	=$(X11_DIR)/include
XLIB	=$(X11_DIR)/lib
# We can't append /include here because some installation will have XForms
# in the /usr/local directory structure (/usr/local/include) and others will
# have it installed "properly" (/usr/X11R6/include/X11/)
XFINC	=$(XF_INC)
XFLIB	=$(XF_LIB)/lib

ifdef X11_DIR
DESTS	+= smdiag
CFLAGS	+= -I$(XINC)
LDFLAGS	+= -L$(XLIB)

ifdef XF_INC
ifdef XF_LIB
DESTS	+= xfsmmixer xfhdlcchpar xfhdlcst xfsmdiag
CFLAGS	+= -I$(XFINC)
LDFLAGS	+= -L$(XFLIB)
endif
endif
endif


all: $(DESTS)

.c.o:
	$(CC) $(CFLAGS) -c $<

install: installbin installman

installbin: all
	install -m 755 -s -o bin -g bin setcrystal	$(SBIN_DIR)
	install -m 755 -s -o bin -g bin sethdlc   	$(SBIN_DIR)
	install -m 755 -s -o bin -g bin smmixer 	$(SBIN_DIR)
ifdef X11_DIR
	install -m 755 -s -o bin -g bin smdiag	 	$(SBIN_DIR)
ifdef XF_INC
ifdef XF_LIB
	install -m 755 -s -o bin -g bin xfsmmixer 	$(SBIN_DIR)
	install -m 755 -s -o bin -g bin xfhdlcchpar 	$(SBIN_DIR)
	install -m 755 -s -o bin -g bin xfhdlcst 	$(SBIN_DIR)
	install -m 755 -s -o bin -g bin xfsmdiag 	$(SBIN_DIR)
endif
endif
endif

installconf:

installman:
	install -m 644 -o bin -g bin sethdlc.8		$(MAN_DIR)/man8
	install -m 644 -o bin -g bin smdiag.8		$(MAN_DIR)/man8
	install -m 644 -o bin -g bin smmixer.8		$(MAN_DIR)/man8
	install -m 644 -o bin -g bin baycom.9		$(MAN_DIR)/man9
	install -m 644 -o bin -g bin hdlcdrv.9		$(MAN_DIR)/man9
	install -m 644 -o bin -g bin soundmodem.9	$(MAN_DIR)/man9

clean:
	rm -f *.o *~ *.bak *.orig

distclean: clean
	rm -f setcrystal sethdlc smdiag smmixer
	rm -f xfsmmixer xfhdlcchpar xfhdlcst xfsmdiag

sethdlc: sethdlc.o hdrvcomm.o
	$(LD) $(LDFLAGS) -o sethdlc sethdlc.o hdrvcomm.o $(LIBS)

setcrystal: setcrystal.o
	$(LD) $(LDFLAGS) -o setcrystal setcrystal.o $(LIBS)

smdiag: smdiag.o hdrvcomm.o
	$(LD) $(LDFLAGS) -o smdiag smdiag.o hdrvcomm.o $(LIBS) $(XLIBS)

smmixer: smmixer.o hdrvcomm.o
	$(LD) $(LDFLAGS) -o smmixer smmixer.o hdrvcomm.o $(LIBS)

xfsmmixer: xfsmmixer.o xfsmmixer_main.o hdrvcomm.o
	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS) $(XFLIBS)

xfhdlcchpar: xfhdlcchpar.o xfhdlcchpar_main.o hdrvcomm.o
	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS) $(XFLIBS)

xfhdlcst: xfhdlcst.o xfhdlcst_main.o hdrvcomm.o
	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS) $(XFLIBS)

xfsmdiag: xfsmdiag.o xfsmdiag_main.o hdrvcomm.o
	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS) $(XFLIBS)

setcrystal.o:	setcrystal.c
sethdlc.o:	sethdlc.c
smdiag.o:	smdiag.c
smmixer.o:	smmixer.c
