sample.makefile.txt

来自「一个小公司要求给写的很简单的任务管理系统。」· 文本 代码 · 共 211 行

TXT
211
字号
## @(#)sample.makefile.txt	1.5 05/11/17# # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.# # Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions are met:# # -Redistribution of source code must retain the above copyright notice, this#  list of conditions and the following disclaimer.# # -Redistribution in binary form must reproduce the above copyright notice, #  this list of conditions and the following disclaimer in the documentation#  and/or other materials provided with the distribution.# # Neither the name of Sun Microsystems, Inc. or the names of contributors may # be used to endorse or promote products derived from this software without # specific prior written permission.# # This software is provided "AS IS," without a warranty of any kind. ALL # EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING# ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE# OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN")# AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE# AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS# DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST # REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, # INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY # OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, # EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.# # You acknowledge that this software is not designed, licensed or intended# for use in the design, construction, operation or maintenance of any# nuclear facility.########################################################################### Sample GNU Makefile for building ##  Example uses:    #       gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparc]#       gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparcv9]#       gnumake JDK=<java_home> OSNAME=linux   [OPT=true]#       gnumake JDK=<java_home> OSNAME=win32   [OPT=true]########################################################################## Source listsLIBNAME=hprofSOURCES= \    debug_malloc.c	\    hprof_blocks.c	\    hprof_class.c	\    hprof_cpu.c		\    hprof_error.c	\    hprof_event.c	\    hprof_frame.c	\    hprof_init.c	\    hprof_io.c		\    hprof_ioname.c	\    hprof_listener.c	\    hprof_loader.c	\    hprof_monitor.c	\    hprof_object.c	\    hprof_reference.c	\    hprof_site.c	\    hprof_stack.c	\    hprof_string.c	\    hprof_table.c	\    hprof_tag.c		\    hprof_tls.c		\    hprof_trace.c	\    hprof_tracker.c	\    hprof_util.c	\    hprof_md.cJAVA_SOURCES=Tracker.java# Name of jar file that needs to be created#JARFILE=hprof.jar# Solaris Sun C Compiler Version 5.5ifeq ($(OSNAME), solaris)    # Sun Solaris Compiler options needed    COMMON_FLAGS=-mt -KPIC    # Options that help find errors    COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none    # To make hprof logging code available    COMMON_FLAGS+= -DHPROF_LOGGING    # Check LIBARCH for any special compiler options    LIBARCH=$(shell uname -p)    ifeq ($(LIBARCH), sparc)        COMMON_FLAGS+=-xarch=v8 -xregs=no%appl    endif    ifeq ($(LIBARCH), sparcv9)        COMMON_FLAGS+=-xarch=v9 -xregs=no%appl    endif    ifeq ($(OPT), true)        CFLAGS=-xO2 $(COMMON_FLAGS)  -DNDEBUG    else        CFLAGS=-g $(COMMON_FLAGS) -DDEBUG    endif    # Object files needed to create library    OBJECTS=$(SOURCES:%.c=%.o)    # Library name and options needed to build it    LIBRARY=lib$(LIBNAME).so    LDFLAGS=-z defs -ztext    # Libraries we are dependent on    LIBRARIES=-lsocket -lnsl -ldl -lc    # Building a shared library    LINK_SHARED=$(LINK.c) -G -o $@endif# Linux GNU C Compilerifeq ($(OSNAME), linux)    # GNU Compiler options needed to build it    COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer    # Options that help find errors    COMMON_FLAGS+= -W -Wall  -Wno-unused -Wno-parentheses    # To allow access to dladdr()    COMMON_FLAGS+= -D_GNU_SOURCE    # To prevent include of procfs.h    COMMON_FLAGS+= -DLINUX    # To make sure code is reentrant    COMMON_FLAGS+= -D_REENTRANT    # To make hprof logging code available    COMMON_FLAGS+= -DHPROF_LOGGING    ifeq ($(OPT), true)        CFLAGS=-O2 $(COMMON_FLAGS)  -DNDEBUG    else        CFLAGS=-g $(COMMON_FLAGS)  -DDEBUG    endif    # Object files needed to create library    OBJECTS=$(SOURCES:%.c=%.o)    # Library name and options needed to build it    LIBRARY=lib$(LIBNAME).so    LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text    # Libraries we are dependent on    LIBRARIES= -lnsl -ldl -lc    # Building a shared library    LINK_SHARED=$(LINK.c) -shared -o $@endif# Windows Microsoft C/C++ Optimizing Compiler Version 12ifeq ($(OSNAME), win32)    CC=cl    # Compiler options needed to build it    COMMON_FLAGS=-Gy -DWIN32    # Options that help find errors    COMMON_FLAGS+=-W0 -WX    # To make hprof logging code available    COMMON_FLAGS+= -DHPROF_LOGGING    ifeq ($(OPT), true)        CFLAGS= -Ox -Op -Zi $(COMMON_FLAGS)  -DNDEBUG    else        CFLAGS= -Od -Zi $(COMMON_FLAGS)  -DDEBUG    endif    # Add java_crw_demo source    SOURCES += ../java_crw_demo.c    # Object files needed to create library    OBJECTS=$(SOURCES:%.c=%.obj)    # Library name and options needed to build it    LIBRARY=$(LIBNAME).dll    LDFLAGS=    # Libraries we are dependent on    LIBRARIES=wsock32.lib winmm.lib    # Building a shared library    LINK_SHARED=link -dll -out:$@endif# Common -I optionsCFLAGS += -I.CFLAGS += -I../java_crw_demoCFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME)# Default rule (build both native library and jar file)all: hprof_md.c $(LIBRARY) $(JARFILE)# Get platform specific hprof_md.chprof_md.c:	rm -f $@	cp $(OSNAME)/hprof_md.c $@# Build native library$(LIBRARY): $(OBJECTS)	$(LINK_SHARED) $(OBJECTS) $(LIBRARIES)# Build jar file$(JARFILE): $(JAVA_SOURCES)	rm -f -r classes	mkdir -p classes	$(JDK)/bin/javac -d classes $(JAVA_SOURCES)	(cd classes; $(JDK)/bin/jar cf ../$@ *)# Cleanup the built bitsclean:	rm -f -r classes	rm -f $(LIBRARY) $(JARFILE) $(OBJECTS)# Simple testertest: all	LD_LIBRARY_PATH=. $(JDK)/bin/java -agentlib:$(LIBNAME) -Xbootclasspath/a:./$(JARFILE) -version# Compilation rule only needed on Windowsifeq ($(OSNAME), win32)%.obj: %.c	$(COMPILE.c) $<endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?