]> git.sur5r.net Git - cc65/commitdiff
Avoid name conflict with 'make.info'.
authorol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 10 Nov 2010 21:38:07 +0000 (21:38 +0000)
committerol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 10 Nov 2010 21:38:07 +0000 (21:38 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4848 b7a2c559-68d2-44c3-8de9-860c34a00d81

doc/index.sgml
doc/make.sgml [deleted file]
doc/using-make.sgml [new file with mode: 0644]

index 97d055a7a400e9538df326ddcb2b48bebae5364a..f9fa2a62a462f61ac1f2f8285d09ce2fdfd2efdc 100644 (file)
@@ -62,7 +62,7 @@ Main documentation page, contains links to other available stuff.
   <tag><htmlurl url="compile.txt" name="compile.txt"></tag>
   How to compile cc65 and the support tools.
 
-  <tag><htmlurl url="make.html" name="make.html"></tag>
+  <tag><htmlurl url="using-make.html" name="using-make.html"></tag>
   Build programs, using the GNU Make utility.
 
   <tag><htmlurl url="customizing.html" name="customizing.html"></tag>
diff --git a/doc/make.sgml b/doc/make.sgml
deleted file mode 100644 (file)
index 5affe3b..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<!doctype linuxdoc system>
-
-<article>
-
-<title>Using GNU Make with cc65
-<author>Oliver Schmidt, <htmlurl url="mailto:ol.sc@web.de" name="ol.sc@web.de">
-<date>2009-06-26
-
-<abstract>
-How to build your program using the GNU Make utility.
-</abstract>
-
-<!-- Table of contents -->
-<toc>
-
-<!-- Begin the document -->
-
-<sect>Overview<p>
-
-This document describes how to build your programs using the cc65 development
-tools and the GNU Make utility.
-
-The cc65 development package doesn't come with a make utility. However this is
-no issue because GNU Make works very nicely with cc65.
-
-
-
-<sect>What is GNU Make?<p>
-
-GNU Make is a both very powerful and very popular make utility. It might even
-be called the de facto standard for make utilities. For more information see
-the GNU Make home page:
-
-<url url="http://www.gnu.org/software/make/">
-
-The cc65 development package is available as binaries for several host systems
-and can easily built for quite some additional systems. The very same is true
-for GNU Make so a cc65-based project coming with a GNU Make Makefile can easily
-be built by any cc65 developer no matter what host system is used.
-
-Because of the strong alignment of the cc65 compiler with the ISO C standard it
-is very well feasible to compile a single C code base both with the cc65
-compiler and other C compilers like for example GCC. GNU Make turns out to be
-very well suited to build projects for several target systems using multiple
-compilers as it isn't tied to any C compiler.
-
-
-
-<sect>A sample Makefile<p>
-
-This Makefile is a fully functional sample for compiling several C sources
-(here <tt/foo.c/ and <tt/bar.c/) and link the resulting object files into an
-executable program (here <tt/foobar/):
-
-<tscreen><verb>
-SOURCES = foo.c bar.c
-
-PROGRAM = foobar
-
-ifdef CC65_TARGET
-CC      = $(CC65_HOME)/bin/cl65
-CFLAGS  = -t $(CC65_TARGET) --create-dep $(<:.c=.d) -O
-LDFLAGS = -t $(CC65_TARGET) -m $(PROGRAM).map
-else
-CC      = gcc
-CFLAGS  = -MMD -MP -O
-LDFLAGS = -Wl,-Map,$(PROGRAM).map
-endif
-
-########################################
-
-.SUFFIXES:
-.PHONY: all clean
-all: $(PROGRAM)
-
-ifneq ($(MAKECMDGOALS),clean)
--include $(SOURCES:.c=.d)
-endif
-
-%.o: %.c
-       $(CC) -c $(CFLAGS) -o $@ $<
-
-$(PROGRAM): $(SOURCES:.c=.o)
-       $(CC) $(LDFLAGS) -o $@ $^
-
-clean:
-       $(RM) $(SOURCES:.c=.o) $(SOURCES:.c=.d) $(PROGRAM) $(PROGRAM).map
-</verb></tscreen>
-
-<bf/Important:/ When using the sample Makefile above via copy & paste it is
-necessary to replace the eight spaces at the beginning of command lines (lines
-26, 29 and 32) with a tab character (ASCII code 9).
-
-
-<sect1>Invoking the sample Makefile<p>
-
-Without any specific configuration the sample Makefile will compile and link
-using GCC. In order to rather use cc65 the variable <tt/CC65_TARGET/ needs to be
-defined. This may by done as an environment variable or simply as part of the
-Makefile. However to quickly switch between compilers and/or cc65 targets it is
-best done on the GNU Make command line like this:
-
-<tscreen><verb>
-make CC65_TARGET=c64
-</verb></tscreen>
-
-The sample Makefile presumes the variable <tt/CC65_HOME/ to point to the
-directory cc65 is located in. Again there are several ways to define this
-variable but as its value typically won't change often it is best done as an
-environment variable. On Windows the cc65 .exe installer package takes care
-of creating a <tt/CC65_HOME/ environment variable.
-
-
-<sect1>Understanding the sample Makefile<p>
-
-Most parts of the sample Makefile follow the guidelines in the
-<htmlurl url="http://www.gnu.org/software/make/manual/make.html" name="GNU Make Manual">
-that can be searched online for background information. The automatic generation of
-dependency however rather works as described by the GNU Make maintainer Paul D. Smith in
-<htmlurl url="http://make.paulandlesley.org/autodep.html#advanced" name="Advanced Auto-Dependencies">.
-Fortunately both GCC and cc65 directly support this method in the meantime.
-
-
-<sect1>Invoking the sample Makefile on Windows<p>
-
-The recommended way to use GNU Make on Windows is to install it as part of a
-Cygwin environment. For more information see the Cygwin home page:
-
-<url url="http://www.cygwin.com/">
-  
-If however installing Cygwin shouldn't be an option for one or the other reason
-then the sample Makefile may be invoked from the Windows Command Prompt (cmd.exe)
-by downloading the following programs:
-
-<itemize>
-<item>make.exe: <url url="http://gnuwin32.sourceforge.net/packages/make.htm">
-<item>rm.exe: <url url="http://gnuwin32.sourceforge.net/packages/coreutils.htm">
-</itemize>
-
-
-
-<sect>Target-specific Variable Values<p>
-  
-The very limited resources of the cc65 target machines now and then require
-manual optimization of the build process by compiling individual source files
-with different compiler options. GNU Make offers
-<htmlurl url="http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html" name="Target-specific Variable Values">
-perfectly suited for doing so. For example placing the code of the two modules 
-<tt/foo/ and <tt/bar/ in the segment <tt/FOOBAR/ can be archived with this
-target-specific variable definition:
-
-<tscreen><verb>
-foo.o bar.o: CFLAGS += --code-name FOOBAR
-</verb></tscreen>
-  
-</article>
diff --git a/doc/using-make.sgml b/doc/using-make.sgml
new file mode 100644 (file)
index 0000000..5affe3b
--- /dev/null
@@ -0,0 +1,156 @@
+<!doctype linuxdoc system>
+
+<article>
+
+<title>Using GNU Make with cc65
+<author>Oliver Schmidt, <htmlurl url="mailto:ol.sc@web.de" name="ol.sc@web.de">
+<date>2009-06-26
+
+<abstract>
+How to build your program using the GNU Make utility.
+</abstract>
+
+<!-- Table of contents -->
+<toc>
+
+<!-- Begin the document -->
+
+<sect>Overview<p>
+
+This document describes how to build your programs using the cc65 development
+tools and the GNU Make utility.
+
+The cc65 development package doesn't come with a make utility. However this is
+no issue because GNU Make works very nicely with cc65.
+
+
+
+<sect>What is GNU Make?<p>
+
+GNU Make is a both very powerful and very popular make utility. It might even
+be called the de facto standard for make utilities. For more information see
+the GNU Make home page:
+
+<url url="http://www.gnu.org/software/make/">
+
+The cc65 development package is available as binaries for several host systems
+and can easily built for quite some additional systems. The very same is true
+for GNU Make so a cc65-based project coming with a GNU Make Makefile can easily
+be built by any cc65 developer no matter what host system is used.
+
+Because of the strong alignment of the cc65 compiler with the ISO C standard it
+is very well feasible to compile a single C code base both with the cc65
+compiler and other C compilers like for example GCC. GNU Make turns out to be
+very well suited to build projects for several target systems using multiple
+compilers as it isn't tied to any C compiler.
+
+
+
+<sect>A sample Makefile<p>
+
+This Makefile is a fully functional sample for compiling several C sources
+(here <tt/foo.c/ and <tt/bar.c/) and link the resulting object files into an
+executable program (here <tt/foobar/):
+
+<tscreen><verb>
+SOURCES = foo.c bar.c
+
+PROGRAM = foobar
+
+ifdef CC65_TARGET
+CC      = $(CC65_HOME)/bin/cl65
+CFLAGS  = -t $(CC65_TARGET) --create-dep $(<:.c=.d) -O
+LDFLAGS = -t $(CC65_TARGET) -m $(PROGRAM).map
+else
+CC      = gcc
+CFLAGS  = -MMD -MP -O
+LDFLAGS = -Wl,-Map,$(PROGRAM).map
+endif
+
+########################################
+
+.SUFFIXES:
+.PHONY: all clean
+all: $(PROGRAM)
+
+ifneq ($(MAKECMDGOALS),clean)
+-include $(SOURCES:.c=.d)
+endif
+
+%.o: %.c
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+$(PROGRAM): $(SOURCES:.c=.o)
+       $(CC) $(LDFLAGS) -o $@ $^
+
+clean:
+       $(RM) $(SOURCES:.c=.o) $(SOURCES:.c=.d) $(PROGRAM) $(PROGRAM).map
+</verb></tscreen>
+
+<bf/Important:/ When using the sample Makefile above via copy & paste it is
+necessary to replace the eight spaces at the beginning of command lines (lines
+26, 29 and 32) with a tab character (ASCII code 9).
+
+
+<sect1>Invoking the sample Makefile<p>
+
+Without any specific configuration the sample Makefile will compile and link
+using GCC. In order to rather use cc65 the variable <tt/CC65_TARGET/ needs to be
+defined. This may by done as an environment variable or simply as part of the
+Makefile. However to quickly switch between compilers and/or cc65 targets it is
+best done on the GNU Make command line like this:
+
+<tscreen><verb>
+make CC65_TARGET=c64
+</verb></tscreen>
+
+The sample Makefile presumes the variable <tt/CC65_HOME/ to point to the
+directory cc65 is located in. Again there are several ways to define this
+variable but as its value typically won't change often it is best done as an
+environment variable. On Windows the cc65 .exe installer package takes care
+of creating a <tt/CC65_HOME/ environment variable.
+
+
+<sect1>Understanding the sample Makefile<p>
+
+Most parts of the sample Makefile follow the guidelines in the
+<htmlurl url="http://www.gnu.org/software/make/manual/make.html" name="GNU Make Manual">
+that can be searched online for background information. The automatic generation of
+dependency however rather works as described by the GNU Make maintainer Paul D. Smith in
+<htmlurl url="http://make.paulandlesley.org/autodep.html#advanced" name="Advanced Auto-Dependencies">.
+Fortunately both GCC and cc65 directly support this method in the meantime.
+
+
+<sect1>Invoking the sample Makefile on Windows<p>
+
+The recommended way to use GNU Make on Windows is to install it as part of a
+Cygwin environment. For more information see the Cygwin home page:
+
+<url url="http://www.cygwin.com/">
+  
+If however installing Cygwin shouldn't be an option for one or the other reason
+then the sample Makefile may be invoked from the Windows Command Prompt (cmd.exe)
+by downloading the following programs:
+
+<itemize>
+<item>make.exe: <url url="http://gnuwin32.sourceforge.net/packages/make.htm">
+<item>rm.exe: <url url="http://gnuwin32.sourceforge.net/packages/coreutils.htm">
+</itemize>
+
+
+
+<sect>Target-specific Variable Values<p>
+  
+The very limited resources of the cc65 target machines now and then require
+manual optimization of the build process by compiling individual source files
+with different compiler options. GNU Make offers
+<htmlurl url="http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html" name="Target-specific Variable Values">
+perfectly suited for doing so. For example placing the code of the two modules 
+<tt/foo/ and <tt/bar/ in the segment <tt/FOOBAR/ can be archived with this
+target-specific variable definition:
+
+<tscreen><verb>
+foo.o bar.o: CFLAGS += --code-name FOOBAR
+</verb></tscreen>
+  
+</article>