#
# Makefile for libXawPlus, styled for LINUX.
# An extended Xaw library with 3 D styled widgets, XPM support for the most
# widgets and two new widgets: The IconList and the DrawingArea widget.
# This is a X11R5 based version but works also fine for X11R6.
#
# Roland Krause 1997, 1999
#

LIB_PATH =	-L/usr/X11/lib			# Libraries for X
INC_PATH =	-I. -I/usr/X11/include 		# Header files for X
INST_LIBS=	/usr/X11/lib

XAW=		./X11/XawPlus

CC =		gcc
FLAGS =		-fPIC -O2 -m486

OBJS=		XawInit.o Vendor.o Add3dExt.o \
		Box.o Paned.o Viewport.o Form.o Porthole.o \
		TextSrc.o TextSink.o TextAction.o TextPop.o TextTr.o Text.o \
		AsciiSrc.o AsciiSink.o AsciiText.o \
		Sme.o SmeBSB.o SmeLine.o SimpleMenu.o \
		Simple.o Label.o MenuButton.o Toggle.o Panner.o Command.o Repeater.o \
		Grip.o Scrollbar.o List.o IconList.o \
 		Tree.o DrawingArea.o StripChart.o Clock.o Logo.o Mailbox.o Dialog.o \
		StrToPmap.o  LocPixmap.o

all:		lib install
lib:		libXawPlus.a libXawPlus.so.2.0

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

# -- Build the libraries

libXawPlus.a:	$(OBJS)
		ranlib libXawPlus.a

libXawPlus.so.2.0: $(OBJS)
		$(CC) -shared -Wl,-soname,libXawPlus.so.2 \
		-o libXawPlus.so.2.0 $(OBJS)

# --- This only works as superuser root

install:
		mkdir -p /usr/X11/include/X11/XawPlus
		cp ./X11/XawPlus/* /usr/X11/include/X11/XawPlus
		cp libXawPlus.a $(INST_LIBS)
		rm -f $(INST_LIBS)/libXawPlus.so.2 $(INST_LIBS)/libXawPlus.so
		cp libXawPlus.so.2.0 $(INST_LIBS)
		ldconfig
		ln -s $(INST_LIBS)/libXawPlus.so.2.0 $(INST_LIBS)/libXawPlus.so

# --- Common

XawInit.o:	XawInit.c $(XAW)/XawInit.h
		$(CC) $(FLAGS) $(INC_PATH) -c XawInit.c
		ar r libXawPlus.a XawInit.o

Vendor.o:	Vendor.c
		$(CC) $(FLAGS) $(INC_PATH) -c Vendor.c
		ar r libXawPlus.a Vendor.o

# --- 3 D extension, XPM support

LocPixmap.o:	LocPixmap.c
		$(CC) $(FLAGS) $(INC_PATH)-c LocPixmap.c
		ar r libXawPlus.a LocPixmap.o

StrToPmap.o:	StrToPmap.c
		$(CC) $(FLAGS) $(INC_PATH)-c StrToPmap.c
		ar r libXawPlus.a StrToPmap.o

Add3dExt.o:	Add3dExt.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Add3dExt.c
		ar r libXawPlus.a Add3dExt.o

# --- Manager widgets

Box.o:		Box.c $(XAW)/XawInit.h $(XAW)/Box.h $(XAW)/BoxP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Box.c
		ar r libXawPlus.a Box.o

Paned.o:	Paned.c $(XAW)/XawInit.h $(XAW)/Grip.h $(XAW)/GripP.h \
		$(XAW)/Paned.h $(XAW)/PanedP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Paned.c
		ar r libXawPlus.a Paned.o

Viewport.o:	Viewport.c $(XAW)/XawInit.h $(XAW)/Scrollbar.h $(XAW)/ScrollbarP.h \
		$(XAW)/Form.h $(XAW)/FormP.h $(XAW)/Viewport.h $(XAW)/ViewportP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Viewport.c
		ar r libXawPlus.a Viewport.o

Form.o:		Form.c $(XAW)/XawInit.h $(XAW)/Form.h $(XAW)/FormP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Form.c
		ar r libXawPlus.a Form.o

Porthole.o:	Porthole.c $(XAW)/XawInit.h $(XAW)/Porthole.h $(XAW)/PortholeP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Porthole.c
		ar r libXawPlus.a Porthole.o

# --- Text widget

TextSrc.o:	TextSrc.c $(XAW)/XawInit.h $(XAW)/TextSrc.h $(XAW)/TextSrcP.h
		$(CC) $(FLAGS) $(INC_PATH) -c TextSrc.c
		ar r libXawPlus.a TextSrc.o

TextSink.o:	TextSink.c $(XAW)/XawInit.h $(XAW)/TextP.h \
		$(XAW)/TextSink.h $(XAW)/TextSinkP.h
		$(CC) $(FLAGS) $(INC_PATH) -c TextSink.c
		ar r libXawPlus.a TextSink.o

TextAction.o:	TextAction.c $(XAW)/TextP.h $(XAW)/Text.h
		$(CC) $(FLAGS) $(INC_PATH) -c TextAction.c
		ar r libXawPlus.a TextAction.o

TextTr.o:	TextTr.c
		$(CC) $(FLAGS) $(INC_PATH) -c TextTr.c
		ar r libXawPlus.a TextTr.o

Text.o:		Text.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/Simple.h $(XAW)/SimpleP.h \
		$(XAW)/Scrollbar.h $(XAW)/ScrollbarP.h $(XAW)/TextP.h $(XAW)/Text.h
		$(CC) $(FLAGS) $(INC_PATH) -c Text.c
		ar r libXawPlus.a Text.o

# --- AsciiText widget

AsciiSrc.o:	AsciiSrc.c $(XAW)/XawInit.h \
		$(XAW)/TextSrc.h $(XAW)/TextSrcP.h $(XAW)/AsciiSrc.h $(XAW)/AsciiSrcP.h
		$(CC) $(FLAGS) $(INC_PATH) -c AsciiSrc.c
		ar r libXawPlus.a AsciiSrc.o

AsciiSink.o:	AsciiSink.c $(XAW)/XawInit.h $(XAW)/AsciiSrcP.h $(XAW)/AsciiSrc.h \
		$(XAW)/TextP.h $(XAW)/Text.h $(XAW)/TextSink.h $(XAW)/TextSinkP.h \
		$(XAW)/AsciiSink.h $(XAW)/AsciiSinkP.h
		$(CC) $(FLAGS) $(INC_PATH) -c AsciiSink.c
		ar r libXawPlus.a AsciiSink.o

AsciiText.o:	AsciiText.c $(XAW)/XawInit.h $(XAW)/Cardinals.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/TextP.h $(XAW)/Text.h \
		$(XAW)/AsciiSrc.h $(XAW)/AsciiSink.h $(XAW)/AsciiText.h $(XAW)/AsciiTextP.h
		$(CC) $(FLAGS) $(INC_PATH) -c AsciiText.c
		ar r libXawPlus.a AsciiText.o

TextPop.o:	TextPop.c $(XAW)/TextP.h $(XAW)/Text.h $(XAW)/AsciiText.h $(XAW)/Cardinals.h \
		$(XAW)/Command.h $(XAW)/Form.h $(XAW)/Toggle.h
		$(CC) $(FLAGS) $(INC_PATH) -c TextPop.c
		ar r libXawPlus.a TextPop.o

# --- Simple menue widget

Sme.o:		Sme.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/Sme.h $(XAW)/SmeP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Sme.c
		ar r libXawPlus.a Sme.o

SmeBSB.o:	SmeBSB.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/SimpleMenu.h \
		$(XAW)/SmeBSB.h $(XAW)/SmeBSBP.h
		$(CC) $(FLAGS) $(INC_PATH) -c SmeBSB.c
		ar r libXawPlus.a SmeBSB.o

SmeLine.o:	SmeLine.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/Sme.h $(XAW)/SmeP.h \
		$(XAW)/SmeLine.h $(XAW)/SmeLineP.h
		$(CC) $(FLAGS) $(INC_PATH) -c SmeLine.c
		ar r libXawPlus.a SmeLine.o

SimpleMenu.o:	SimpleMenu.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/SmeBSB.h \
		$(XAW)/SimpleMenu.h $(XAW)/SimpleMenP.h
		$(CC) $(FLAGS) $(INC_PATH) -c SimpleMenu.c
		ar r libXawPlus.a SimpleMenu.o

# --- Toggles, buttons, lists ...

Simple.o:	Simple.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Simple.c
		ar r libXawPlus.a Simple.o

Label.o:	Label.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Label.h $(XAW)/LabelP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Label.c
		ar r libXawPlus.a Label.o

Command.o:	Command.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Label.h $(XAW)/LabelP.h \
		$(XAW)/Command.h $(XAW)/CommandP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Command.c
		ar r libXawPlus.a Command.o

MenuButton.o:	MenuButton.c  $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Label.h $(XAW)/LabelP.h \
		$(XAW)/Command.h $(XAW)/CommandP.h $(XAW)/MenuButton.h $(XAW)/MenuButtoP.h
		$(CC) $(FLAGS) $(INC_PATH) -c MenuButton.c
		ar r libXawPlus.a MenuButton.o

Toggle.o:	Toggle.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Label.h $(XAW)/LabelP.h \
		$(XAW)/Command.h $(XAW)/CommandP.h $(XAW)/Toggle.h $(XAW)/ToggleP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Toggle.c
		ar r libXawPlus.a Toggle.o

Repeater.o:	Repeater.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Label.h $(XAW)/LabelP.h \
		$(XAW)/Command.h $(XAW)/CommandP.h $(XAW)/Repeater.h $(XAW)/RepeaterP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Repeater.c
		ar r libXawPlus.a Repeater.o

Panner.o:	Panner.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Panner.h $(XAW)/PannerP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Panner.c
		ar r libXawPlus.a Panner.o

Grip.o:		Grip.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Grip.h $(XAW)/GripP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Grip.c
		ar r libXawPlus.a Grip.o

Scrollbar.o:	Scrollbar.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Scrollbar.h $(XAW)/ScrollbarP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Scrollbar.c
		ar r libXawPlus.a Scrollbar.o

List.o:		List.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/List.h $(XAW)/ListP.h
		$(CC) $(FLAGS) $(INC_PATH) -c List.c
		ar r libXawPlus.a List.o

IconList.o:	IconList.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/IconList.h $(XAW)/IconListP.h
		$(CC) $(FLAGS) $(INC_PATH) -c IconList.c
		ar r libXawPlus.a IconList.o

# --- Miscelaneous

Tree.o:		Tree.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/Tree.h $(XAW)/TreeP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Tree.c
		ar r libXawPlus.a Tree.o

DrawingArea.o:	DrawingArea.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/DrawingArea.h $(XAW)/DrawingAreaP.h
		$(CC) $(FLAGS) $(INC_PATH) -c DrawingArea.c
		ar r libXawPlus.a DrawingArea.o

StripChart.o:	StripChart.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/StripChart.h $(XAW)/StripCharP.h
		$(CC) $(FLAGS) $(INC_PATH) -c StripChart.c
		ar r libXawPlus.a StripChart.o

Clock.o:	Clock.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Clock.h $(XAW)/ClockP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Clock.c
		ar r libXawPlus.a Clock.o

Logo.o:		Logo.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Logo.h $(XAW)/LogoP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Logo.c
		ar r libXawPlus.a Logo.o

Mailbox.o:	Mailbox.c $(XAW)/XawInit.h $(XAW)/Add3dExt.h $(XAW)/Add3dExtP.h \
		$(XAW)/Simple.h $(XAW)/SimpleP.h $(XAW)/Mailbox.h $(XAW)/MailboxP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Mailbox.c
		ar r libXawPlus.a Mailbox.o

Dialog.o:	Dialog.c $(XAW)/XawInit.h $(XAW)/Cardinals.h $(XAW)/Form.h $(XAW)/FormP.h \
		$(XAW)/AsciiText.h $(XAW)/Command.h $(XAW)/Label.h \
		$(XAW)/Dialog.h $(XAW)/DialogP.h
		$(CC) $(FLAGS) $(INC_PATH) -c Dialog.c
		ar r libXawPlus.a Dialog.o

