加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
SMakefile 12.82 KB
一键复制 编辑 原始数据 按行查看 历史
luanhailiang 提交于 2012-08-09 20:44 . My mudos
#####################################################
# Standard Makefile for the MudOS driver #
#####################################################
#SHELL=/bin/sh
SHELL=
###########################
# setup and configuration #
###########################
# Note: this Makefile may need modified depending upon which type of machine
# you are using to compile the driver. Be sure to read all of the comments
# in this file since they may pertain to your particular machine.
#
# If you get some weird compile-time error message from "make" about not being
# able to find some .h file, then try one of the following two things:
#
# 1) type "make depend"
# 2) deleting all of the lines below the comment that mentions "make depend"
# (near the bottom of this file).
# change this if you wish the driver binary to be named something else
DRIVER_BIN = driver
# uncomment PROOF if using CenterLine's TestCenter to debug the driver.
#PROOF=proof
# RESOLV: define this to be -lresolv if your machine has it.
# HP and NeXT don't have it.
#RESOLV=-lresolv
# uncomment STRFUNCS if your machine is missing memcpy(), memset(), strtol(),
# and strcspn(). (needed by Sequent Dynix/3)
#STRFUNCS=strfuncs.o
# uncomment UALARM if your machine is missing the ualarm() system call.
# needed by HP, A/UX (Apple Mac), EP/IX (MIPS), Sequent Dynix/3, Ultrix
#UALARM=ualarm.o
# Command used to install executables in the INSTALL_DIR
# Use the -f version for HP/UX
#INSTALL = install -f
#INSTALL = install -c
# Use cp if all else fails
#INSTALL = cp
# Use copy if AmigaDOS
INSTALL = copy
# Command use to remove files, -f (force), -rf (recursively & force)
#RM = rm
#RMF = rm -f
#RRMF = rm -rf
# Use delete if AmigaDOS
RM = delete
RMF = delete
RRMF = delete ALL
# Command to move or rename files
#MV = mv
#MVF = mv -f
# Use rename if AmigaDOS
MV = rename
# Command to create directory
#MKDIR = mkdir
# Use makedir if AmigaDOS
MKDIR = makedir
# Command to view text file contents
#CAT = cat
CAT = type
# Set INSTALL_DIR to the directory where you want to install the executables.
#INSTALL_DIR = ../bin
# Use /bin if AmigaDOS
INSTALL_DIR = /bin
# Enable warnings from the compiler (gcc), if wanted.
#WARN=-Wall
# Use this with gcc if you have lots of RAM, speeds up compile
#PIPE=-pipe
# define profiling if you want it
# note: the gmon.out file will likely be written in the mudlib dir.
# PROFILE_ON controls whether or not monitoring is active at driver
# startup. Comment PROFILE_ON to make profiling not active at startup.
# Use moncontrol(1) efun to enable profiling and moncontrol(0) to turn
# it off.
#PROFILE_ON=-DPROFILE_ON
# Uncomment this if you want to enable profiling of the driver (gcc)
#PROFIL=-pg -DPROFILING $(PROFILE_ON)
# Enable run time debugging
#DEBUG=-g
# With extra driver debug code
#DEBUG=-g -DDEBUG
# Prevent -DDEBUG from aborting the driver (when in -DDEBUG mode)
#DEBUG_NON_FATAL=-DDEBUG_NON_FATAL
# Compile in debug() macro code
#DEBUG_MACRO=-DDEBUG_MACRO
# Debugging for Amiga SAS/C
DEBUG=Define=DEBUG Debug=Symbol
# If you don't have strchr() and strrchr(), then uncomment the following line
#STR=-Dstrchr=index -Dstrrchr=rindex
# define this if you want (compiler) optimization enabled.
#
# *WARNING* using high levels of optimization (e.g. -O3) can cause some
# compilers to produce incorrect code. If the driver is behaving
# inexplicably, try using a lower level of optimization (or none).
#
# Uncomment one or none of the following optimization lines.
#
# -O is usually a safe level of optimization for most compilers
#OPTIMIZE=-O
# high optimization for gcc:
#OPTIMIZE=-O2 -fomit-frame-pointer -fstrength-reduce
# uncomment below for RS/6000(AIX) xlc compiler only.
# remove the -Q if xlc complains.
#OPTIMIZE=-O -Q
# might need this one with newer versions of AIX (ie 3.2.4)
#OPTIMIZE=-O -Q -qMAXMEM=16000
# high optimization for HP-UX 7.x/8.x's cc (don't use with 9.x)
#OPTIMIZE=+O3 +Obb3000
# MIPS R3000 running EP/IX Version 1.4.3. Compiler is RISCompiler C 2.11 (cc).
#OPTIMIZE=-Olimit 1802
# DEC Ultrix's cc's highest optimization:
#OPTIMIZE=-O2 -Olimit 5000
# Amiga SAS/C's optimization
#OPTIMIZE=Opt OptGo OptLoop OptInl OptInLocal OptTime OptPeep CPU=any
OPTIMIZE=CPU=any
# use this for Amiga SAS/C
CPP=$(CC) PreprocessorOnly
# use this for NeXTSTEP 3.1+ (at least)
#CPP=$(CC) -E -traditional-cpp
# the usual
#CPP=$(CC) -E
# RS/6000 AIX: use this OSFLAGS line (required).
#OSFLAGS=-D_BSD -D_ALL_SOURCE
# System V Release 4 (386/486 or if using Sun's cc under Solaris 2.x)
#OSFLAGS=-DSVR4
# MIPS R3000 running EP/IX Version 1.4.3. Compiler is RISCompiler C 2.11 (cc).
#OSFLAGS=-I/usr/include/bsd
# Amiga SAS/C
# Define=AS225 - if you have CBM's AS225 R2 networking package
# Define=AMITCP - if you have the AmiTCP networking package
# Define=NO_IP_DEMON - if you're not using addr_server
OSFLAGS=Data=far Code=far NoIcons \
IncludeDirectory=amiga IncludeDirectory=NETINCLUDE: \
NoErrorHighlight \
Strict Ignore=105 Ignore=120 Ignore=183 \
Define=AMITCP
GlobalSymbolTable=amiga/std.gst
# try uncommenting this if you are using gcc and at runtime you see socket
# errors saying that the "set socket nonblocking" operation is not supported.
# That error is caused by old-style macros (that gcc doesn't normally grok)
# used by ioctl on some systems.
#NEED_OLD_CPP=-traditional-cpp
CFLAGS= $(OSFLAGS) $(OPTIMIZE) $(WARN) $(PROFIL) $(DEBUG) $(DEBUG_MACRO) \
$(DEBUG_NON_FATAL) $(STR) $(PIPE) $(NEED_OLD_CPP)
# Flags to be used by the LPC->C compiler
# remove optimization or make other modifications here
CFLAGS2= $(STATIC) $(OSFLAGS) $(OPTIMIZE) $(WARN) $(DEBUG) \
$(DEBUG_MACRO) $(DEBUG_NON_FATAL) $(STR) $(PIPE) $(NEED_OLD_CPP)
# set CC=cc on a NeXT and to gcc on other machines (if possible)
# You may want to use xlc on an RS/6000 (produces faster code).
#
# NOTE: If you are using gcc (especially on a sun4), and the driver gives
# a runtime error regarding "operation not supported on socket", then
# try using cc instead (some UNIX's use unsupported hacks in some of
# the system #include (.h) files which prevents some (socket) ioctl operations
# from working correctly when using a less crufty compiler than that provided
# by default on the system in question).
#
#CC=cc
#CC=gcc
# CenterLine cc
#CC=clcc
#CC=xlc
# Amiga SAS/C compiler
CC=sc
# define this to be what you use for make
#MAKE = make
#MAKE = gmake
MAKE = smake
# Object file linker
#LINKER=$(CC)
LINKER=slink
# Amiga SAS/C
#LFLAGS=AddSym NoIcons
LFLAGS=NoIcons
# define this to be bison if you have it, and yacc otherwise.
#YACC=bison
#YFLAGS=-d -y
YACC=yacc
YFLAGS = -d
# A/UX: may be required for Apple's UNIX (and possibly others). Try
# uncommenting this if the make results in link errors seemingly related
# to yacc (e.g. undefined symbol "yyerror").
#EXTRALIBS=-ly
# HP-UX: use this EXTRALIBS line for HP-UX
#EXTRALIBS=-lBSD
# RS/6000 AIX: use this EXTRALIBS line
#EXTRALIBS=-lbsd
# NetBSD 386: due to export restrictions...you may be missing or
# have a crippled crypt package
#EXTRALIBS=-lcrypt
# NeXT: link with MallocDebug if you have a NeXT with NeXTOS 2.1 or later and
# you wish to search for memory leaks (see /NextDeveloper/Apps/MallocDebug).
# Note: linking with MallocDebug will cause the virtual size of the
# driver process to reach appoximately 40MB however the amount of real memory
# used will remain close to normal.
#EXTRALIBS=-lMallocDebug -lsys_s
# Sequent DYNIX/ptx: use this EXTRALIBS line
#EXTRALIBS=-lsocket -linet -lnsl -lseq -lmalloc
# System V Release 4 (386/486)
#EXTRALIBS=-lsocket -lnsl
# Solaris (SunOS 5.1)
#EXTRALIBS=-lnsl -lsocket -lresolv
# MIPS R3000 running EP/IX Version 1.4.3. Compiler is RISCompiler C 2.11 (cc).
#EXTRALIBS=-lbsd
# Amiga SAS/C
EXTRALIBS=NETLIB:netnb.lib LIB:scmnb.lib LIB:scnb.lib LIB:amiga.lib
# Don't change this line. Define EXTRALIBS before this line if you
# wish to add any libraries.
#LIBS=-lm $(EXTRALIBS)
# Use this if Amiga SAS/C -- equivalent to m.lib specified above
LIBS=LIB $(EXTRALIBS)
# Amiga SAS/C
EXTRA_PORT=amiga/signal.o amiga/signal_rr.o amiga/socket.o amiga/crypt.o
AMIGA_BIN=amiga/cstrip amiga/replace amiga /std.gst
# Define these for LPC->C support
#EXTRA_EFUNS=cfuns.o cfuns_main.o cfuns_port.o cfuns_math.o cfuns_sock.o
#EXTRA_OBJS=lpc_compiler.tab.o compile_file.o interface.o
#################################################
# the meat of things #
# don't change anything below this section #
#################################################
EFUNS=efuns_main.o efuns_port.o $(EXTRA_EFUNS)
OBJ=grammar.tab.o lex.o main.o rc.o interpret.o simulate.o file.o object.o \
backend.o array.o mapping.o comm.o ed.o regexp.o swap.o buffer.o crc32.o \
malloc.o mallocwrapper.o class.o \
call_out.o otable.o dumpstat.o stralloc.o hash.o mudlib_stats.o \
port.o reclaim.o parse.o simul_efun.o sprintf.o uid.o program.o \
compiler.o avltree.o icode.o trees.o generate.o scratchpad.o \
socket_efuns.o socket_ctrl.o qsort.o eoperators.o socket_err.o md.o \
strstr.o disassembler.o binaries.o add_action.o $(UALARM) $(STRFUNCS) \
$(EFUNS) replace_program.o functab_tree.o $(EXTRA_OBJS) \
$(EXTRA_PORT)
PACKAGES= packages/\#?.o
all: $(AMIGA_BIN) $(DRIVER_BIN) addr_server lpc_to_c.h
remake: neat all
# SAS/C
$(DRIVER_BIN): $(OBJ) $(PACKAGES)
-$(RM) $(DRIVER_BIN).old
-$(MV) $(DRIVER_BIN) $(DRIVER_BIN).old
list nohead quick packages/\#?.o lformat "packages/%s" >objlist
$(LINKER) <WITH <
LIB:catch.o
FROM $(OBJ)
WITH objlist
TO $(DRIVER_BIN)
$(LIBS) $(LFLAGS)
<
-$(RM) objlist
lpc_to_c.h: cfuns.h virtual_architecture.h
-$(CAT) cfuns.h virtual_architecture.h > lpc_to_c.h
depend: opcodes.h efun_protos.h grammar.tab.h cc.h efunctions.h efun_defs.c
makedepend \#?.c
addr_server: addr_server.o socket_ctrl.o port.o addr_server.h
$(LINKER) LIB:c.o socket_ctrl.o addr_server.o port.o $(RESOLV) \
TO addr_server $(LIBS) $(LFLAGS)
.c.o:
$(CC) $(CFLAGS) $<
make_packages: packages/SMakefile
execute amiga/make_packages
$(PACKAGES): make_packages
cc.h: SMakefile
-$(RMF) cc.h
$(CAT) < >cc.h <
/* this file automatically generated by the Makefile */
\#define COMPILER "$(CC)"
\#define OPTIMIZE "$(OPTIMIZE)"
\#define CFLAGS "$(CFLAGS)"
\#define OBJDIR "$(OBJDIR)"
<
lex.o: lex.c grammar.tab.c cc.h
interpret.o: interpret.c patchlevel.h
packages/SMakefile: efun_defs.c
packages/Makefile: efun_defs.c
packages/GNUmakefile: efun_defs.c
efun_protos.h: efun_defs.c
efunctions.h: efun_defs.c
opc.h: efun_defs.c
opcodes.h: efun_defs.c
efun_defs.c: malloc.c func_spec.c make_func func_spec.cpp options.h
make_func > efun_defs.c
func_spec.cpp: amiga/cstrip func_spec.c op_spec.c options.h port.h
$(CPP) $(CFLAGS) func_spec.c
amiga/cstrip func_spec.p > func_spec.cpp
make_func.tab.c: make_func.y cc.h
$(YACC) $(YFLAGS) make_func.y
-$(RMF) make_func.tab.\#?
-$(MV) y.tab.c make_func.tab.c
make_func.tab.o: make_func.tab.c
make_func: make_func.tab.o hash.o
$(CC) Link make_func.tab.o hash.o TO make_func $(LFLAGS)
make_malloc.o: make_malloc.c options.h
mallocwrapper.o: mallocwrapper.c
make_malloc: make_malloc.o
$(CC) Link make_malloc.o TO make_malloc $(LFLAGS)
mallocwrapper.c malloc.c: make_malloc options.h
make_malloc $(MALLOC_C)
touch malloc.c
$(CC) $(CFLAGS) malloc.c
touch mallocwrapper.c
$(CC) $(CFLAGS) mallocwrapper.c
grammar.y: efun_defs.c comp_warning grammar.pre
grammar.tab.c: amiga/replace grammar.pre
$(YACC) $(YFLAGS) grammar.y
-$(RMF) grammar.tab.\#?
$(MV) y.tab.h grammar.tab.h
amiga/replace "y.tab.c" "grammar.tab.c" y.tab.c > grammar.tab.c
grammar.tab.o: grammar.tab.c opcodes.h
amiga/socket.o: amiga/socket.c
amiga/signal.o: amiga/signal.c
amiga/signal_rr.o: amiga/signal_rr.c
amiga/crypt.o: amiga/crypt.c
amiga/cstrip: amiga/cstrip.c
$(CC) Link amiga/cstrip.c NoIcons
amiga/replace: amiga/replace.c
$(CC) Link amiga/replace.c NoIcons
amiga/std.gst: std.h
$(CAT) < >amiga/std.c <
/* this file automatically generated by the Makefile */
#include "std"
<
$(CC) $(CFLAGS) Define=NO_SOCKETS Define=NO_OPCODES \
MakeGlobalSymbolTable=amiga/std.gst \
amiga/std.c
install: $(DRIVER_BIN) addr_server
-$(MKDIR) $(INSTALL_DIR)
$(INSTALL) $(DRIVER_BIN) $(INSTALL_DIR)
$(INSTALL) addr_server $(INSTALL_DIR)
neat:
-$(RM) packages/\#?.o
-$(RM) packages/GNUmakefile packages/Makefile packages/SMakefile
-$(RRMF) obj \#?.o \#?.tab.c \#?.tab.h \#?.lnk \#?.info
-$(RRMF) amiga/\#?.o amiga/\#?.lnk amiga/\#?.info
-$(RMF) cc.h
-$(RMF) efun_defs.c
-$(RMF) option_defs.c
-$(RMF) opcodes.h
-$(RMF) efunctions.h
-$(RMF) opc.h
-$(RMF) efun_protos.h
-$(RMF) make_func
-$(RMF) make_malloc
-$(RMF) malloc.c
-$(RMF) mallocwrapper.c
-$(RMF) amiga/std.\#?
-$(RMF) amiga/replace
-$(RMF) amiga/cstrip
-$(RMF) objlist
-$(RMF) temp_smk.tmp
-$(RMF) \#?.p func_spec.cpp
-$(RMF) grammar.y
clean: neat
-$(RMF) \#?.orig \#?.rej
-$(RMF) \#?/\#?.orig \#?/\#?.rej
-$(RMF) \#?/\#?~ \#?~
-$(RMF) Snapshot.tb
-$(RMF) TAGS
-$(RMF) $(DRIVER_BIN)
-$(RMF) $(DRIVER_BIN).old
-$(RMF) addr_server
# DO NOT DELETE THIS LINE -- make depend depends on it.
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化