#
# Makefile generated by stmkmk susp
# 
# assume environment variable ST_DIR is defined
# or defint it here
# ST_DIR = 
APPS = susp susp2 yield manyargs strret strpass csregs gs \
	sc_test steal steal2 bin cb cwg shrink torialloca bigframe \
	condtest nestcall mm 

# SGC flags:
# assume environment variable SGC_DIR is defined
# or define it here
# SGC_DIR =
# uncomment following two lines if you use SGC (with stgcc).
# SGC_FLAGS = -DWITH_SGC -I$(SGC_DIR)
# SGC_LIB = --xsgc
# uncomment following two lines if you dont use SGC
SGC_FLAGS = 
SGC_LIB = 

# define various vars (SGC_LIB)
include $(ST_DIR)/lib/sthreads.mk

# add C flags and C++ flags
CC_CXX_FLAGS = $(SGC_FLAGS) -g -O4
CFLAGS = $(CC_CXX_FLAGS) 
CXXFLAGS = $(CC_CXX_FLAGS)

# add basename of object files
BASES = $(APPS)
OBJS = $(addsuffix .o,$(BASES)) cbnopp.o cwgnopp.o mmf.o
ASMS = $(addsuffix .s,$(BASES))
TASMS = $(addsuffix .t,$(BASES))
PPS = $(addsuffix .t.pp,$(BASES))
TAB_CS = $(addsuffix .t.tab.c,$(BASES))
TAB_SS = $(addsuffix .t.tab.s,$(BASES))
TAB_S_PPS = $(addsuffix .t.tab.s.pp,$(BASES))

ifeq ($(ST_OS_TYPE),winnt)
	EXES = $(addsuffix .exe,$(BASES))
else
	EXES = $(BASES)
endif

all : $(APPS)

susp : susp.o
	$(CC) -o susp susp.o $(SGC_LIB)

susp2 : susp2.o
	$(CC) -o susp2 susp2.o $(SGC_LIB)

yield : yield.o
	$(CC) -o yield yield.o $(SGC_LIB)

manyargs : manyargs.o
	$(CC) -o manyargs manyargs.o $(SGC_LIB)

strret : strret.o
	$(CC) -o strret strret.o $(SGC_LIB)

strpass : strpass.o
	$(CC) -o strpass strpass.o $(SGC_LIB)

sc_test : sc_test.o
	$(CC) -o sc_test sc_test.o $(SGC_LIB)

istr_test : istr_test.o
	$(CXX) -o istr_test istr_test.o $(SGC_LIB)

steal : steal.o
	$(CC) -o steal steal.o $(SGC_LIB)

steal2 : steal2.o
	$(CC) -o steal2 steal2.o $(SGC_LIB)

bin : bin.o
	$(CC) -o bin bin.o $(SGC_LIB)

bigframe : bigframe.o
	$(CC) -o bigframe bigframe.o $(SGC_LIB)

csregs : csregs.o
	$(CC) -o csregs csregs.o $(SGC_LIB)

gs : gs.o
	$(CC) -o gs gs.o $(SGC_LIB)

cb : cb.o cbnopp.o
	$(CC) -o cb cb.o cbnopp.o $(SGC_LIB)

cwg : cwg.o cwgnopp.o
	$(CC) -o cwg cwg.o cwgnopp.o $(SGC_LIB)

cbnopp.o : cbnopp.c
	gcc -O -c cbnopp.c

cwgnopp.o : cwgnopp.c
	gcc -O -c -I$(ST_DIR)/include cwgnopp.c

mm : mm.o mmf.o
	$(CC) -o mm mm.o mmf.o $(SGC_LIB)

mm.o : mm.c
	gcc -O -g -c -I$(ST_DIR)/include mm.c

nestcall : nestcall.o
	$(CC) -o nestcall nestcall.o $(SGC_LIB)

shrink : shrink.o
	$(CC) -o shrink shrink.o $(SGC_LIB)

condtest : condtest.o
	$(CC) -o condtest condtest.o $(SGC_LIB)

torialloca : torialloca.o
	$(CC) -o torialloca torialloca.o $(SGC_LIB)

clean : 
	rm -f core 
	rm -f $(OBJS) 
	rm -f $(ASMS) 
	rm -f $(TASMS) 
	rm -f $(TAB_CS) 
	rm -f $(TAB_SS) 
	rm -f $(TAB_S_PPS)
	rm -f $(PPS)

all_clean : clean
	rm -f $(EXES)
	rm -f *~
