Browse Source

new organization using only one library

Roberto Ierusalimschy 20 years ago
parent
commit
a17e1fe124
1 changed files with 67 additions and 79 deletions
  1. 67 79
      makefile

+ 67 - 79
makefile

@@ -1,111 +1,97 @@
-#
-## $Id: makefile,v 2.3 2004/09/01 13:49:20 roberto Exp $
-## Makefile
-## See Copyright Notice in lua.h
-#
+# makefile for building Lua
+# see INSTALL for installation instructions
+# see ../Makefile and luaconf.h for further customization
 
+# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
 
-#CONFIGURATION
+CWARNS= -pedantic -Waggregate-return -Wcast-align \
+        -Wmissing-prototypes -Wpointer-arith -Wshadow \
+        -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings
+# -Wcast-qual
 
 # -DEXTERNMEMCHECK -DHARDSTACKTESTS
-# DEBUG = -g -DLUA_USER_H='"ltests.h"'
-OPTIMIZE =  -O2 -march=pentium \
+# -g -DLUA_USER_H='"ltests.h"'
 # -fomit-frame-pointer #-pg -malign-double
+TESTS= -g -DLUA_USER_H='"ltests.h"'
 
+LOCAL = $(TESTS) $(CWARNS)
 
-# -DUSE_TMPNAME??
-CONFIG = $(DEBUG) $(OPTIMIZE)
 
+CC= gcc
+CFLAGS= -O2 -Wall $(MYCFLAGS)
+AR= ar rcu
+RANLIB= ranlib
+RM= rm -f
 
-# Compilation parameters
-CC = gcc
-CWARNS = -Wall -pedantic \
-	-Waggregate-return \
-	-Wcast-align \
-	-Wmissing-prototypes \
-	-Wnested-externs \
-	-Wpointer-arith \
-	-Wshadow \
-	-Wsign-compare \
-	-Wstrict-prototypes \
-	-Wundef \
-	-Wwrite-strings \
-#	-Wcast-qual
+MYCFLAGS= $(LOCAL)
+MYLDFLAGS=
+MYLIBS=
 
 
-CFLAGS = $(CONFIG) $(CWARNS)  # -ansi
+# enable Linux goodies
+MYCFLAGS= $(LOCAL) -DLUA_DL_DLOPEN -DLUA_USE_READLINE
+MYLDFLAGS= -Wl,-E
+MYLIBS= -ldl -lreadline -lhistory -lncurses
 
 
-# To make early versions
-CO_OPTIONS =
 
+# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
 
-AR = ar
-ARFLAGS	= rvl
 
+LIBS = -lm
 
-# Aplication modules
-LUAOBJS = \
-	lstate.o \
-	lapi.o \
-	lmem.o \
-	lstring.o \
-	ltable.o \
-	ltm.o \
-	lvm.o \
-	ldo.o \
-	lobject.o \
-	lfunc.o \
-	lgc.o \
-	lcode.o \
-	lparser.o \
-	llex.o \
-	lopcodes.o \
-	lundump.o \
-	ldump.o \
-	lzio.o \
-	ldebug.o \
-	ltests.o 
+CORE_T=	liblua.a
+CORE_O=	lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+	lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o  \
+	lundump.o lvm.o lzio.o ltests.o
+AUX_O=	lauxlib.o
+LIB_O=	lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o \
+	loadlib.o linit.o
 
-LIBOBJS = 	\
-	lauxlib.o \
-	lbaselib.o \
-        ltablib.o \
-	lmathlib.o \
- 	liolib.o \
-	linit.o \
-	loslib.o \
-	lstrlib.o \
-	ldblib.o \
-	loadlib.o
+LUA_T=	lua
+LUA_O=	lua.o
 
+LUAC_T=	luac
+LUAC_O=	luac.o print.o
 
-lua : lua.o liblua.a liblualib.a
-	$(CC) $(CFLAGS) -o $@ lua.o -Wl,-E -L. -llua -llualib -lm -ldl
+ALL_T= $(CORE_T) $(LUA_T) $(LUAC_T)
+ALL_O= $(CORE_O) $(LUA_O) $(LUAC_O) $(AUX_O) $(LIB_O)
+ALL_A= $(CORE_T)
 
-liblua.a : $(LUAOBJS)
-	$(AR) $(ARFLAGS) $@  $?
-	ranlib $@
+all:	$(ALL_T)
 
-liblualib.a : $(LIBOBJS)
-	$(AR) $(ARFLAGS) $@  $?
-	ranlib $@
+o:	$(ALL_O)
 
-liblua.so.1.0 : lua.o
-	ld -o liblua.so.1.0 $(LUAOBJS)
+a:	$(ALL_A)
 
+$(CORE_T): $(CORE_O) $(AUX_O) $(LIB_O)
+	$(AR) $@ $?
+	$(RANLIB) $@
 
-clear	:
-	rcsclean
-	rm -f *.o *.a
+$(LUA_T): $(LUA_O) $(CORE_T)
+	$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(CORE_T) $(LIBS) $(MYLIBS) $(DL)
 
+$(LUAC_T): $(LUAC_O) $(CORE_T)
+	$(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(CORE_T) $(LIBS) $(MYLIBS)
 
-%.h : RCS/%.h,v
-	co $(CO_OPTIONS) $@
+clean:
+	$(RM) $(ALL_T) $(ALL_O)
 
-%.c : RCS/%.c,v
-	co $(CO_OPTIONS) $@
+depend:
+	@$(CC) $(CFLAGS) -MM *.c
 
+echo:
+	@echo "CC = $(CC)"
+	@echo "CFLAGS = $(CFLAGS)"
+	@echo "AR = $(AR)"
+	@echo "RANLIB = $(RANLIB)"
+	@echo "RM = $(RM)"
+	@echo "MYCFLAGS = $(MYCFLAGS)"
+	@echo "MYLDFLAGS = $(MYLDFLAGS)"
+	@echo "MYLIBS = $(MYLIBS)"
+	@echo "DL = $(DL)"
+
+# DO NOT DELETE
 
 lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \
   lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \
@@ -164,3 +150,5 @@ lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
   lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h
 lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
   lzio.h
+
+# (end of Makefile)