# This file is part of RHIDE, (C) 1996 Robert Hhne
# if you don't want to build the dependency-files (*.d), uncomment
# the following line
#export NODEP=1

# if you don't have the programs 'cp', 'rm' and mv, you can build them
# with this makefile with
#  make utils
# or
#  make install_utils
# The second also install the compiled utils in $(DJDIR)/bin

ifndef srcdir
srcdir=.
endif
incdir=$(srcdir)/include
langdir=$(srcdir)/lang
flagdir=$(srcdir)/flags
classdir=$(srcdir)/Class
class_incdir=$(classdir)/include
prefix=$(DJDIR)
lang_files=rhide.dlg
version_string=RHIDE Version 1.0 Beta 5
vpath %.cc $(srcdir)
vpath %.cpp $(srcdir)
vpath %.h $(incdir)
vpath %h $(langdir)
vpath %.h $(flagdir)

all: rhide.dlg rhide.exe

GCLIBS=-LClass -lide -ltv -liostr
CXXFLAGS=-O2 -Wall -Werror $(CFLAGS) -DNO_BREAK
CXXINCLUDE=-I$(DJDIR)/lang/cxx/tvision
CPPFLAGS=$(CXXINCLUDE) -I. -I$(srcdir) -I$(incdir) -I$(class_incdir) -I$(langdir)

_class_incdir=$(subst .,\.,$(subst /,\/,$(class_incdir)))
_langdir=$(subst .,\.,$(subst /,\/,$(langdir)))
_flagdir=$(subst .,\.,$(subst /,\/,$(flagdir)))
sed_user_script += -e 's/$(_class_incdir)\//$$(class_incdir)\//g'
sed_user_script += -e 's/$(_langdir)\//$$(langdir)\//g'
sed_user_script += -e 's/$(_flagdir)\//$$(flagdir)\//g'

common_objs=\
	IDEStrm.o \
	inf.o\
	infbase.o

rhide_objs=IDEMain.o\
	IDEResource.o\
	IDEVersion.o\
	IDEGcc.o \
	IDEPrj.o \
	IDEHints.o\
	IDEUtil.o \
	OpenEditor.o \
	IDEOpt.o \
	IDEPipe.o \
	IDEDefaults.o\
	IDE21.o \
	IDEColors.o \
	IDEio.o \
	IDEWind.o \
	IDEMsg.o \
	IDEExtern.o\
	IDEFormatLine.o\
	IDEHelp.o\
	IDEDebug.o

dlg_objs=dlg.o dlgresou.o

OBJS=$(rhide_objs) $(dlg_objs) $(common_objs)

RHIDE_OBJS=$(rhide_objs) $(common_objs)

DLG_OBJS=$(dlg_objs) $(common_objs)

all: rhide.dlg rhide.exe

rhide.exe: Class/libide.a $(RHIDE_OBJS)
	$(CC) -o rhide.exe $(RHIDE_OBJS) $(GCLIBS)

dlg.exe: Class/libide.a $(DLG_OBJS)
	$(CC) -s -o dlg.exe $(DLG_OBJS) $(GCLIBS)

rhide.dlg: dlg.exe
	dlg.exe

idelib: Class/libide.a

Class/libide.a: force
	$(MAKE) -C Class CXXFLAGS='$(CXXFLAGS)' CFLAGS='$(CFLAGS)'\
	srcdir=../$(srcdir)/Class

clean:
	rm -f $(OBJS) ________.ddd
	$(MAKE) -C Class clean srcdir=../$(srcdir)/Class

distclean: clean
	rm -f $(OBJS:.o=.d) rhide rhide.exe $(lang_files)
	rm -f dlg dlg.exe
	$(MAKE) -C Class distclean srcdir=../$(srcdir)/Class

install: all
	if not exist $(subst /,\,$(prefix))\bin\nul mkdir $(subst /,\,$(prefix))\bin
	cp rhide.exe $(prefix)/bin/rhide.exe
	exe2coff $(prefix)/bin/rhide.exe
	strip $(prefix)/bin/rhide
	stubify $(prefix)/bin/rhide
	rm $(prefix)/bin/rhide
	cp $(lang_files) $(prefix)/bin

UTILS=cp rm mv

%.exe: %.c
	gcc -O -s -o $@ $<

utils: $(addsuffix .exe,$(UTILS))

install_utils: utils
	cp $(addsuffix .exe,$(UTILS)) $(DJDIR)/bin

force:

IDEVersion.o: IDEVersion.cc $(srcdir)/Makefile
	$(CC) -o $@ -DIDEVERSION='"$(version_string)"' -c $<

ifneq ($(MAKEDEF),1)
-include $(srcdir)/make.def
endif
ifneq ($(NODEP),1)
include $(depfiles)
else
export NODEP=1
endif

