include $(CONFIG)

ifneq "$(OS)" "Windows"
  ifneq "$(OS)" "Cygwin"
	CFLAGS += -DUSE_DLOPEN=1
  endif
endif
ifneq "$(OS)" "Darwin"
 ifneq "$(OS)" "Darwin-static"
  ifneq "$(OS)" "OpenBSD"
   ifneq "$(OS)" "FreeBSD"
    ifneq "$(OS)" "Solaris"
	CPFLAGS+= -a
	LDFLAGS+= -Wl,-E
	HLDFLAGS+= -Wl,-E
    endif
   endif
  endif
 endif
endif

CFLAGS += -I../../include -I../include -I. -I.. -DUSE_POPEN=1
ifeq "$(OS)" "OpenBSD"
	LDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm
else
  ifeq "$(OS)" "Cygwin"
	LDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm
  else
    ifeq "$(OS)" "BeOS"
	LDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -ldl
    else
	LDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm -ldl
    endif
  endif
endif
HCFLAGS += -I../../include -I../include -I. -I.. -DUSE_POPEN=1
ifeq "$(OS)" "FreeBSD"
	HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm
else
 ifeq "$(OS)" "OpenBSD"
 	HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm
 else
   ifeq "$(OS)" "Cygwin"
 	HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm
   else
     ifeq "$(OS)" "BeOS"
 	  HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -ldl
     else
       ifeq "$(OS)" "Solaris"
 	    HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lsocket -lnsl -lm
       else
 	    HLDFLAGS+= -L../lib/ -L../../lib/ -llua-host -llualib-host -lm -ldl
       endif
     endif
   endif
 endif
endif

H=@

all: bin/lua
	$(H)echo -n

bin/lua:
	$(H)echo -n ' building core library... '
	$(H)cd src ; 					\
		$(CC) $(CFLAGS) -c  *.c ; 		\
		$(AR) rc ../lib/liblua.a *.o ; 		\
		$(RANLIB) ../lib/liblua.a ;		\
		rm -f *.o
	$(H)echo "done."

	$(H)echo -n ' building standard library... '
	$(H)cd src/lib;					\
		$(CC) $(CFLAGS) -c  *.c ;		\
		$(AR) rc ../../lib/liblualib.a *.o ;	\
		$(RANLIB) ../../lib/liblualib.a ;	\
		rm -f *.o 
	$(H)echo "done."

	$(H)if test "$(HCC)" = "$(CC)" ; then				\
		cd lib/ ; 						\
			ln -s liblua.a liblua-host.a ;			\
			ln -s liblualib.a liblualib-host.a ;		\
	else								\
		echo -n ' building core host library... ';	\
		cd src ; 						\
			$(HCC) $(HCFLAGS) -c *.c ; 			\
			$(HAR) rc ../lib/liblua-host.a *.o ; 	\
			$(HRANLIB) ../lib/liblua-host.a ;		\
			rm -f *.o;					\
		echo "done.";						\
		echo -n ' building standard host library... ';		\
		cd ../src/lib;						\
			$(HCC) $(HCFLAGS) -c *.c ;			\
			$(HAR) rc ../../lib/liblualib-host.a *.o ;	\
			$(HRANLIB) ../../lib/liblualib-host.a ;		\
			rm -f *.o ;					\
		echo "done.";						\
	fi

	$(H)echo -n ' building lua... '
	$(H)cd src/lua;					\
		$(HCC) $(HCFLAGS) -o ../../bin/lua *.c $(HLDFLAGS)
	$(H)echo "done."

	$(H)echo -n ' building luac... '
	$(H)cd src/luac ;					\
		$(HCC) $(HCFLAGS) -o ../../bin/luac *.c 	\
			-DLUA_OPNAMES ../lopcodes.c $(HLDFLAGS)
	$(H)echo "done."

	$(H)echo -n ' building bin2c... '
	$(H)cd etc ;					\
		$(HCC) $(HCFLAGS) -o ../bin/bin2c bin2c.c 	\
			$(HLDFLAGS)
	$(H)echo "done."

	$(H)cp include/*.h $(PREFIX)/include
	$(H)cp bin/* $(PREFIX)/bin
	$(H)cp $(CPFLAGS) lib/*.a $(PREFIX)/lib



syntax highlighted by Code2HTML, v. 0.9.1