#
#       Makefile for ONEW+JSTEVIE
#

ONEW	= /usr/local/onew
JSTEVIE	= /usr/local/stevie
WORKDIR	= ./workdir

OJSTEVIE = $(ONEW)/ojstevie
PATCHSRC = $(OJSTEVIE)/ojstevie-patch

MAKEFILE = Makefile.go

# BOOT_BEGIN ####################################################
boot:		$(MAKEFILE)
		make -f $(MAKEFILE) ENTRY

clean:;		rm $(MAKEFILE) ojstevie

$(MAKEFILE):	Makefile $(ONEW)/$(MAKEFILE)
		sed -n '1,/^# BOOT_BEGIN/p'<Makefile   > $(MAKEFILE)
		echo 'ENTRY: make_it'                 >> $(MAKEFILE)
		cat $(JSTEVIE)/unix.mk                >> $(MAKEFILE)
		cat $(ONEW)/$(MAKEFILE)               >> $(MAKEFILE)
		sed -n '/^# BOOT_END/,$$p'  <Makefile >> $(MAKEFILE)

$(ONEW)/$(MAKEFILE):; cd $(ONEW); make $(MAKEFILE)
# BOOT_END ######################################################

#
#	THE FOLLOWINGS SHOULD BE PLACED AFTER STUFFS INCLUDED 
#	BY "boot:", TO REFER AND REDEFINE INCLUDED PARAMETERS
#

NEWONEW		= $(ONEW)/libonew.a
OJLIB		= -L$(ONEW) $(OJLIBS)
CFLAGS		= -O -D$(SYS) -D$(DIR) -D$(CHAR) -I$(JSTEVIE) -I$(ONEW) -DONEW
LDFLAGS		= $(LDOPTS)

make_it: onewpatch ojstevie
onewpatch: $(WORKDIR)/Makefile

$(WORKDIR)/Makefile: $(MAKEFILE) $(WORKDIR) $(PATCHSRC)
	cp -p $(MAKEFILE) $(WORKDIR)/Makefile; \
	( cd $(WORKDIR); \
	  cp -p $(JSTEVIE)/*.h .; \
	  cp -p $(JSTEVIE)/*.c .; \
	  patch < $(PATCHSRC); );

$(WORKDIR):; mkdir $(WORKDIR)

ojstevie: $(MAKEFILE) *.c $(NEWONEW)
	cp -p $(MAKEFILE) $(WORKDIR)/Makefile; \
	(cd $(WORKDIR); make jstevie); \
	 mv $(WORKDIR)/jstevie ojstevie;

jstevie: onew+stevie.o $(OBJS) $(NEWONEW)
	$(CC) $(LDFLAGS) -o jstevie onew+stevie.o $(OBJS) $(LIBS) $(OJLIB)

onew+stevie.o: $(OJSTEVIE)/onew+stevie.c
	$(CC) -c $(CFLAGS) $(OJSTEVIE)/onew+stevie.c

