Commit d5553d35f3ca37e290b5eb5884de619baccf019a

Werner Lemberg 2003-06-13T07:38:22

* builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also. * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for EMX gcc compiler. * builds/dos/detect.mk: Add target `emx'. * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't like a trailing semicolon; add a dummy command.

diff --git a/ChangeLog b/ChangeLog
index 3ebe8a6..7a05f5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2003-06-13  Werner Lemberg  <wl@gnu.org>
+
+	* builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
+
+	* builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
+	EMX gcc compiler.
+	* builds/dos/detect.mk: Add target `emx'.
+
+	* builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
+	like a trailing semicolon; add a dummy command.
+
 2003-06-12  Werner Lemberg  <wl@gnu.org>
 
 	* include/freetype/internal/psaux.h (T1_FieldType): Add
diff --git a/builds/compiler/emx.mk b/builds/compiler/emx.mk
new file mode 100644
index 0000000..f2be13c
--- /dev/null
+++ b/builds/compiler/emx.mk
@@ -0,0 +1,81 @@
+#
+# FreeType 2 emx-specific definitions
+#
+
+
+# Copyright 2003 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+
+# Compiler command line name
+#
+CC           := set GCCOPT="-ansi -pedantic"; gcc
+COMPILER_SEP := /
+
+
+# The object file extension (for standard and static libraries).  This can be
+# .o, .tco, .obj, etc., depending on the platform.
+#
+O  := o
+SO := o
+
+# The library file extension (for standard and static libraries).  This can
+# be .a, .lib, etc., depending on the platform.
+#
+A  := a
+SA := a
+
+
+# Path inclusion flag.  Some compilers use a different flag than `-I' to
+# specify an additional include path.  Examples are `/i=' or `-J'.
+#
+I := -I
+
+
+# C flag used to define a macro before the compilation of a given source
+# object.  Usually it is `-D' like in `-DDEBUG'.
+#
+D := -D
+
+
+# The link flag used to specify a given library file on link.  Note that
+# this is only used to compile the demo programs, not the library itself.
+#
+L := -l
+
+
+# Target flag.
+#
+T := -o$(space)
+
+# C flags
+#
+#   These should concern: debug output, optimization & warnings.
+#
+#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
+#   ANSI compliance.
+#
+ifndef CFLAGS
+  CFLAGS := -c -g -O6 -Wall
+endif
+
+# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
+#
+ANSIFLAGS :=
+
+
+# Library linking
+#
+ifndef CLEAN_LIBRARY
+  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
+endif
+LINK_LIBRARY = $(foreach m,$(OBJECTS_LIST),$(AR) -r $@ $(m);) echo > nul
+
+
+# EOF
diff --git a/builds/compiler/watcom.mk b/builds/compiler/watcom.mk
index f9e1764..12394be 100644
--- a/builds/compiler/watcom.mk
+++ b/builds/compiler/watcom.mk
@@ -79,6 +79,7 @@ ifndef CLEAN_LIBRARY
 endif
 LINK_LIBRARY = $(subst /,$(COMPILER_SEP), \
                  wlib -q -n $@; \
-                 $(foreach m, $(OBJECTS_LIST), wlib -q $@ +$(m);))
+                 $(foreach m, $(OBJECTS_LIST), wlib -q $@ +$(m);) \
+                 echo > nul)
 
 # EOF
diff --git a/builds/dos/detect.mk b/builds/dos/detect.mk
index 4dba521..b80686c 100644
--- a/builds/dos/detect.mk
+++ b/builds/dos/detect.mk
@@ -23,7 +23,8 @@ ifeq ($(PLATFORM),ansi)
   # `make' utility is run).
   #
   # We test for the COMSPEC environment variable, then run the `ver'
-  # command-line program to see if its output contains the word `Dos'.
+  # command-line program to see if its output contains the word `Dos' or
+  # `DOS'.
   #
   # If this is true, we are running a Dos-ish platform (or an emulation).
   #
@@ -31,7 +32,7 @@ ifeq ($(PLATFORM),ansi)
     PLATFORM := dos
   else
     ifdef COMSPEC
-      is_dos := $(findstring Dos,$(shell ver))
+      is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver)))
 
       # We try to recognize a Dos session under OS/2.  The `ver' command
       # returns `Operating System/2 ...' there, so `is_dos' should be empty.
@@ -63,6 +64,13 @@ ifeq ($(PLATFORM),dos)
 
   # additionally, we provide hooks for various other compilers
   #
+  ifneq ($(findstring emx,$(MAKECMDGOALS)),)        # EMX gcc
+    CONFIG_FILE := dos-emx.mk
+    CC          := gcc
+    emx: setup
+    .PHONY: emx
+  endif
+
   ifneq ($(findstring turboc,$(MAKECMDGOALS)),)     # Turbo C
     CONFIG_FILE := dos-tcc.mk
     CC          := tcc
diff --git a/builds/dos/dos-emx.mk b/builds/dos/dos-emx.mk
new file mode 100644
index 0000000..6ea8f6d
--- /dev/null
+++ b/builds/dos/dos-emx.mk
@@ -0,0 +1,21 @@
+#
+# FreeType 2 configuration rules for the EMX gcc compiler
+#
+
+
+# Copyright 2003 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+
+include $(TOP_DIR)/builds/dos/dos-def.mk
+include $(TOP_DIR)/builds/compiler/emx.mk
+include $(TOP_DIR)/builds/link_dos.mk
+
+
+# EOF