# acalc Makefile
#

# For Linux, use the following set of lines:
CALC = acalc
LIBS = -lm 
CURS_OBJS = iface_c.o get_str.o keys_c.o
CURS_LIBS = -lncurses
CURS_CFLAGS =
GTK_OBJS = iface_g.o keys_g.o
GTK_LIBS = `gtk-config --libs`
GTK_CFLAGS = `gtk-config --cflags`
# Comment out the next line if you don't want to have the indicators in the
# GTK+ version
GTK_CFLAGS += -DPIXMAPS
SYSTEM = SYS_LINUX
# For curses, use:
#DISP_LIBS = $(CURS_LIBS)
#DISP_CFLAGS = $(CURS_CFLAGS)
#DISP_OBJS = $(CURS_OBJS)
#DISPLAY = DISP_CURSES
# For GTK+, use:
DISP_LIBS = $(GTK_LIBS)
DISP_CFLAGS = $(GTK_CFLAGS)
DISP_OBJS = $(GTK_OBJS)
DISPLAY = DISP_GTK


# For DJGPP, use the following:
#CALC = acalc.exe
#LIBS = -lm
#DISP_OBJS = iface_c.o get_str.o keys_c.o
#DISP_LIBS = -lcurso
#DISP_CFLAGS =
#DISPLAY = DISP_CURSES
#SYSTEM = SYS_DOS

# For debugging, use:
# CFLAGS = -g -Wall -D$(SYSTEM) -D$(DISPLAY)
# Otherwise, use:
CFLAGS = -O2 -D$(SYSTEM) -D$(DISPLAY)

# acalc will be copied into the $(INST_PREFIX)/bin directory on install
INST_PREFIX = /usr/local

OBJS = acalc.o calc.o command.o data.o function.o shortcut.o toolbar.o \
	llist.o stack.o queue.o error.o
CC = gcc
HEADERS = calc.h extern.h data.h function.h shortcut.h

all: $(CALC)

$(CALC): $(OBJS) $(DISP_OBJS)
	$(CC) $(CFLAGS) $(DISP_CFLAGS) $(OBJS) $(DISP_OBJS) $(LIBS) $(DISP_LIBS) \
		-o $(CALC)
	#-strip $(CALC)

acalc.o: acalc.c $(HEADERS)
	$(CC) -c $(CFLAGS) acalc.c
calc.o: calc.c $(HEADERS)
	$(CC) -c $(CFLAGS) calc.c
command.o: command.c $(HEADERS)
	$(CC) -c $(CFLAGS) command.c
data.o: data.c data.h
	$(CC) -c $(CFLAGS) data.c
function.o: function.c $(HEADERS)
	$(CC) -c $(CFLAGS) function.c
shortcut.o: shortcut.c shortcut.h
	$(CC) -c $(CFLAGS) shortcut.c
toolbar.o: toolbar.c
	$(CC) -c $(CFLAGS) toolbar.c

iface_c.o: iface_c.c $(HEADERS) get_str.h
	$(CC) -c $(CFLAGS) $(DISP_CFLAGS) iface_c.c
get_str.o: get_str.c $(HEADERS) get_str.h
	$(CC) -c $(CFLAGS) $(DISP_CFLAGS) get_str.c
keys_c.o: keys_c.c $(HEADERS)
	$(CC) -c $(CFLAGS) $(DISP_CFLAGS) keys_c.c

iface_g.o: iface_g.c $(HEADERS) pixmaps.h
	$(CC) -c $(CFLAGS) $(DISP_CFLAGS) iface_g.c
keys_g.o: keys_g.c $(HEADERS)
	$(CC) -c $(CFLAGS) $(DISP_CFLAGS) keys_g.c

error.o: error.c error.h
	$(CC) -c $(CFLAGS) error.c
llist.o: llist.c llist.h
	$(CC) -c $(CFLAGS) llist.c
stack.o: stack.c stack.h
	$(CC) -c $(CFLAGS) stack.c
queue.o: queue.c queue.h
	$(CC) -c $(CFLAGS) queue.c

install: $(CALC)
	cp $(CALC) $(INST_PREFIX)/bin/
	chmod 0755 $(INST_PREFIX)/bin/$(CALC)

.PHONY: clean
clean:
	-rm -f $(OBJS) $(DISP_OBJS) $(CALC) 
