#BUILD =
BUILD = freebsd
#BUILD = debian
#BUILD = centos
#BUILD = nllibc

#ARCH =
#ARCH = i386
ARCH = x86_64
#ARCH = arm

TESTDIR = testsuite
HELLODIR = samples/hello
COMMANDDIR = samples/command
NLCC1DIR = nlcc/nlcc1
NLCC1TESTDIR = $(TESTDIR)/nlcc1
NLSHDIR = nlsh
NLLDIR = nll
NLLTESTDIR = $(TESTDIR)/nll
NLTLDIR = nltl
NLTLTESTDIR = $(TESTDIR)/nltl
NLLINEDIR = nlline
NLLIBCDIR = nllibc
NLLIBCTESTDIR = $(TESTDIR)/nllibc

BINDIR = bin
INCDIR = include
LIBDIR = lib
MANDIR = man

OPT_NLCC1 = CCOMPILER=nlcc1 ARCH=$(ARCH) STDCHEADERS=$(BUILD)

OPT_NLLINE                         = READLINE=nlline

OPT_NLLIBC                         = USE_NLLIBC=yes
OPT_NLLIBC_NLLIBCINC               = $(OPT_NLLIBC) STDCHEADERS=nllibc
OPT_NLLIBC_NLLIBCINC_NLCRT         = $(OPT_NLLIBC_NLLIBCINC) USE_NLCRT=yes
OPT_NLLIBC_NLLIBCINC_NLCRT_NLLDSCR = $(OPT_NLLIBC_NLLIBCINC_NLCRT) NLLDSCR=$(ARCH)
OPT_NLLIBCALL                      = $(OPT_NLLIBC_NLLIBCINC_NLCRT_NLLDSCR)

OPT_NLTERM                         = USE_NLTERM=yes
OPT_NLTERM_NLTERMINC               = $(OPT_NLTERM) TERMHEADERS=nllibc

all :		build.hello build.command build.nlcc1 build.nlsh build.nll build.nltl build.nlline build.nllibc

install :	install.hello install.command install.nlcc1 install.nlsh install.nll install.nltl install.nlline install.nllibc

uninstall :	uninstall.hello uninstall.command uninstall.nlcc1 uninstall.nlsh uninstall.nll uninstall.nltl uninstall.nlline uninstall.nllibc
		rmdir $(BINDIR)
		rmdir $(INCDIR)/sys $(INCDIR)
		rmdir $(LIBDIR)/ldscripts $(LIBDIR)
		rmdir $(MANDIR)/man1 $(MANDIR)

test :
		cd $(TESTDIR) ; $(MAKE)

testset :
		cd $(TESTDIR) ; $(MAKE) testset

clean :		clean.hello clean.command clean.nlcc1 clean.nlsh clean.nll clean.nltl clean.nlline clean.nllibc clean.test

include Makefile.hello
include Makefile.command
include Makefile.nlcc1
include Makefile.nlsh
include Makefile.nll
include Makefile.nltl
include Makefile.nlline
include Makefile.nllibc
include Makefile.test
include Makefile.mingw
include Makefile.android
include Makefile.microbit
