mirror of
https://github.com/mirror/make.git
synced 2026-08-19 08:23:28 +08:00
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory. Update all scripting and recommendations to support this change. * *.c, *.h, w32/*: Move to src/ * configure.ac, Makefile.am, maintMakefile: Locate new source files. * Basic.mk.template, mk/*: Update for new source file locations. * NEWS, README.DOS.template: Update for new locations. * build.template, build_w32.bat, builddos.bat: Ditto. * po/POTFILES.in: Ditto * tests/run_make_tests.pl, tests/scripts/features/load*: Ditto. * make.1: Move to doc. * mk/VMS.mk: Add support for building on VMS (hopefully). * makefile.vms, prepare_w32.bat: Remove. * SCOPTIONS: Update to define HAVE_CONFIG_H
This commit is contained in:
11
mk/Amiga.mk
11
mk/Amiga.mk
@@ -20,16 +20,19 @@
|
||||
|
||||
CC = sc
|
||||
LD = $(CC) Link
|
||||
|
||||
RM = delete
|
||||
MKDIR = makedir
|
||||
CP = copy
|
||||
CP.cmd = $(CP) $< To $@
|
||||
|
||||
CPPFLAGS =
|
||||
CFLAGS =
|
||||
LDFLAGS =
|
||||
|
||||
prog_SOURCES += alloca.c getloadavg.c $(glob_SOURCES) $(amiga_SOURCES)
|
||||
prog_SOURCES += $(alloca_SOURCES) $(loadavg_SOURCES) $(glob_SOURCES) $(amiga_SOURCES)
|
||||
|
||||
extra_CPPFLAGS = IDir "" IDir $(SRCDIR)/glob
|
||||
extra_CPPFLAGS = IDir $(OUTDIR)src IDir $(SRCDIR)/src IDir $(SRCDIR)/glob
|
||||
|
||||
C_SOURCE =
|
||||
OUTPUT_OPTION =
|
||||
@@ -37,5 +40,5 @@ LDFLAGS = From LIB:cres.o
|
||||
LDLIBS = Lib LIB:sc.lib LIB:amiga.lib
|
||||
LINK_OUTPUT = To $@
|
||||
|
||||
$(OUTDIR)/config.h: $(SRCDIR)/config.ami
|
||||
copy $< To $@
|
||||
$(OUTDIR)src/config.h: $(SRCDIR)/src/config.ami
|
||||
$(CP.cmd)
|
||||
|
||||
27
mk/Posix.mk.in
Normal file
27
mk/Posix.mk.in
Normal file
@@ -0,0 +1,27 @@
|
||||
# GNU -*-Makefile-*- to build GNU make on POSIX systems
|
||||
#
|
||||
# POSIX overrides for use with Basic.mk.
|
||||
#
|
||||
# Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
# This file is part of GNU Make.
|
||||
#
|
||||
# GNU Make is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Very little is needed here since the default Basic.mk assumes POSIX
|
||||
|
||||
prog_SOURCES += $(posix_SOURCES)
|
||||
|
||||
extra_CPPFLAGS += @GUILE_CFLAGS@ @GLOBINC@
|
||||
extra_LDFLAGS += @AM_LDFLAGS@
|
||||
LDLIBS += @GUILE_LIBS@ @LIBOBJS@ @GETLOADAVG_LIBS@ @GLOBLIB@ @ALLOCA@ @LIBINTL@ @LIBS@
|
||||
91
mk/VMS.mk
Normal file
91
mk/VMS.mk
Normal file
@@ -0,0 +1,91 @@
|
||||
# GNU -*-Makefile-*- to build GNU make on VMS
|
||||
#
|
||||
# VMS overrides for use with Basic.mk.
|
||||
#
|
||||
# Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
# This file is part of GNU Make.
|
||||
#
|
||||
# GNU Make is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
src = [.src]
|
||||
glob = [.glob]
|
||||
SRCDIR = []
|
||||
|
||||
OBJEXT = .obj
|
||||
EXEEXT = .exe
|
||||
|
||||
CP = copy
|
||||
MKDIR = create/dir
|
||||
RM = delete
|
||||
|
||||
e =
|
||||
s = $e $e
|
||||
c = ,
|
||||
|
||||
defs = HAVE_CONFIG_H
|
||||
|
||||
ifeq ($(CC),cc)
|
||||
defs += VMS unlink=remove allocated_variable_expand_for_file=alloc_var_expand_for_file
|
||||
else
|
||||
defs += GCC_IS_NATIVE
|
||||
ifeq ($(ARCH),VAX)
|
||||
defs += VAX
|
||||
endif
|
||||
endif
|
||||
|
||||
extra_CPPFLAGS = /define=($(subst $s,$c,$(patsubst %,"%",$(defs))))
|
||||
|
||||
cinclude = /nested=none/include=($(src),$(glob))
|
||||
ifeq ($(CC),cc)
|
||||
cprefix = /prefix=(all,except=(glob,globfree))
|
||||
cwarn = /standard=relaxed/warn=(disable=questcompare)
|
||||
endif
|
||||
|
||||
extra_CFLAGS = $(cinclude)$(cprefix)$(cwarn)
|
||||
|
||||
#extra_LDFLAGS = /deb
|
||||
extra_LDFLAGS =
|
||||
|
||||
# If your system needs extra libraries loaded in, define them here.
|
||||
# System V probably need -lPW for alloca.
|
||||
# if on vax, uncomment the following line
|
||||
#LDLIBS = ,c.opt/opt
|
||||
ifeq ($(CC),cc)
|
||||
#LDLIBS =,sys$$library:vaxcrtl.olb/lib
|
||||
else
|
||||
LDLIBS =,gnu_cc_library:libgcc.olb/lib
|
||||
endif
|
||||
|
||||
# If your system doesn't have alloca, or the one provided is bad,
|
||||
# uncomment this
|
||||
#ALLOCA = $(alloca_SOURCES)
|
||||
|
||||
prog_SOURCES += $(ALLOCA) $(glob_SOURCES) $(vms_SOURCES)
|
||||
|
||||
COMPILE.cmd = $(CC) $(extra_CFLAGS)$(CFLAGS)/obj=$@ $(extra_CPPFLAGS)$(CPPFLAGS) $<
|
||||
|
||||
LINK.cmd = $(LD)$(extra_LDFLAGS)$(LDFLAGS)/exe=$@ $(subst $s,$c,$^)$(LDLIBS)
|
||||
|
||||
# Don't know how to do this
|
||||
CHECK.cmd =
|
||||
|
||||
define RM.cmd
|
||||
-purge [...]
|
||||
-$(RM) $(PROG);
|
||||
-$(RM) $(src)*.$(OBJEXT);
|
||||
endef
|
||||
|
||||
|
||||
$(OUTDIR)$(src)config.h: $(SRCDIR)$(src)config.h.W32
|
||||
$(CP.cmd)
|
||||
@@ -1,6 +1,6 @@
|
||||
# GNU -*-Makefile-*- to build GNU make on Windows
|
||||
#
|
||||
# Windows overrides for use with Makebase.mk.
|
||||
# Windows overrides for use with Basic.mk.
|
||||
#
|
||||
# Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
# This file is part of GNU Make.
|
||||
@@ -25,7 +25,7 @@ TARGET_TYPE = release
|
||||
TOOLCHAIN = msvc
|
||||
|
||||
|
||||
prog_SOURCES += getloadavg.c $(glob_SOURCES) $(w32_SOURCES)
|
||||
prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES) $(w32_SOURCES)
|
||||
|
||||
w32_LIBS = kernel32 user32 gdi32 winspool comdlg32 advapi32 shell32 ole32 \
|
||||
oleaut32 uuid odbc32 odbccp32
|
||||
@@ -39,7 +39,7 @@ msvc_CC = cl.exe
|
||||
msvc_LD = link.exe
|
||||
|
||||
msvc_CPPFLAGS = /DHAVE_CONFIG_H /DWINDOWS32 /DWIN32 /D_CONSOLE
|
||||
msvc_CPPFLAGS += /I$(OUTDIR) /I$(SRCDIR) /I$(SRCDIR)/glob /I$(SRCDIR)/w32/include
|
||||
msvc_CPPFLAGS += /I$(OUTDIR)src /I$(SRCDIR)/src /I$(SRCDIR)/glob /I$(SRCDIR)/src/w32/include
|
||||
|
||||
msvc_CFLAGS = /nologo /MT /W4 /EHsc
|
||||
msvc_CFLAGS += /FR$(OUTDIR) /Fp$(BASE_PROG).pch /Fd$(BASE_PROG).pdb
|
||||
@@ -52,11 +52,11 @@ msvc_C_SOURCE = /c
|
||||
msvc_OUTPUT_OPTION = /Fo$@
|
||||
msvc_LINK_OUTPUT = /OUT:$@
|
||||
|
||||
release_msvc_OUTDIR = ./WinRel
|
||||
release_msvc_OUTDIR = ./WinRel/
|
||||
release_msvc_CPPFLAGS = /D NDEBUG
|
||||
release_msvc_CFLAGS = /O2
|
||||
|
||||
debug_msvc_OUTDIR = ./WinDebug
|
||||
debug_msvc_OUTDIR = ./WinDebug/
|
||||
debug_msvc_CPPFLAGS = /D _DEBUG
|
||||
debug_msvc_CFLAGS = /Zi /Od
|
||||
debug_msvc_LDFLAGS = /DEBUG
|
||||
@@ -65,10 +65,10 @@ debug_msvc_LDFLAGS = /DEBUG
|
||||
gcc_CC = gcc
|
||||
gcc_LD = $(gcc_CC)
|
||||
|
||||
release_gcc_OUTDIR = ./GccRel
|
||||
debug_gcc_OUTDIR = ./GccDebug
|
||||
release_gcc_OUTDIR = ./GccRel/
|
||||
debug_gcc_OUTDIR = ./GccDebug/
|
||||
|
||||
gcc_CPPFLAGS = -DHAVE_CONFIG_H -I$(OBJDIR) -I$(SRCDIR) -I$(SRCDIR)/glob -I$(SRCDIR)/w32/include
|
||||
gcc_CPPFLAGS = -DHAVE_CONFIG_H -I$(OUTDIR)src -I$(SRCDIR)/src -I$(SRCDIR)/glob -I$(SRCDIR)/src/w32/include
|
||||
gcc_CFLAGS = -mthreads -Wall -std=gnu99 -gdwarf-2 -g3
|
||||
gcc_LDFLAGS = -mthreads -gdwarf-2 -g3
|
||||
gcc_LDLIBS = $(addprefix -l,$(w32_libs))
|
||||
@@ -86,8 +86,14 @@ LINK.cmd = $(LD) $(extra_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) $(LINK_
|
||||
|
||||
CHECK.cmd = cmd /c cd tests \& .\run_make_tests.bat -make ../$(PROG)
|
||||
|
||||
MKDIR.cmd = cmd /c mkdir $(subst /,\\,$@)
|
||||
RM.cmd = cmd /c del /F /Q $(subst /,\\,$(OBJECTS) $(PROG))
|
||||
MKDIR = cmd /c mkdir
|
||||
MKDIR.cmd = $(MKDIR) $(subst /,\\,$@)
|
||||
|
||||
RM = cmd /c del /F /Q
|
||||
RM.cmd = $(RM) $(subst /,\\,$(OBJECTS) $(PROG))
|
||||
|
||||
CP = cmd /c copy /Y
|
||||
CP.cmd = $(CP) $(subst /,\\,$< $@)
|
||||
|
||||
CC = $($(TOOLCHAIN)_CC)
|
||||
LD = $($(TOOLCHAIN)_LD)
|
||||
@@ -104,7 +110,7 @@ EXEEXT = .exe
|
||||
_CUSTOM = $($(TOOLCHAIN)_$1) $($(TARGET_TYPE)_$1) $($(TARGET_TYPE)_$(TOOLCHAIN)_$1)
|
||||
|
||||
# I'm not sure why this builds gnumake rather than make...?
|
||||
PROG = $(OUTDIR)/gnumake$(EXEEXT)
|
||||
PROG = $(OUTDIR)gnumake$(EXEEXT)
|
||||
BASE_PROG = $(basename $(PROG))
|
||||
|
||||
extra_CPPFLAGS = $(call _CUSTOM,CPPFLAGS)
|
||||
@@ -112,5 +118,5 @@ extra_CFLAGS = $(call _CUSTOM,CFLAGS)
|
||||
extra_LDFLAGS = $(call _CUSTOM,LDFLAGS)
|
||||
LDLIBS = $(call _CUSTOM,LDLIBS)
|
||||
|
||||
$(OUTDIR)/config.h: $(SRCDIR)/config.h.W32
|
||||
cmd /c copy /Y $(subst /,\\,$< $@)
|
||||
$(OUTDIR)src/config.h: $(SRCDIR)/src/config.h.W32
|
||||
$(CP.cmd)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# GNU -*-Makefile-*- to build GNU make on MS-DOS with DJGPP
|
||||
#
|
||||
# MS-DOS overrides for use with Makebase.mk.
|
||||
# MS-DOS overrides for use with Basic.mk.
|
||||
#
|
||||
# Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
# This file is part of GNU Make.
|
||||
@@ -23,12 +23,22 @@ EXEEXT = .exe
|
||||
|
||||
CC = gcc
|
||||
|
||||
prog_SOURCES += getloadavg.c $(glob_SOURCES)
|
||||
prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES)
|
||||
|
||||
extra_CPPFLAGS += -I$(SRCDIR)/glob -DINCLUDEDIR=\"c:/djgpp/include\" -DLIBDIR=\"c:/djgpp/lib\"
|
||||
INCLUDEDIR = c:/djgpp/include
|
||||
LIBDIR = c:/djgpp/lib
|
||||
LOCALEDIR = c:/djgpp/share
|
||||
|
||||
MKDIR.cmd = command.com /c mkdir $(subst /,\\,$@)
|
||||
RM.cmd = command.com /c del /F /Q $(subst /,\\,$(OBJECTS) $(PROG))
|
||||
extra_CPPFLAGS = -I$(SRCDIR)/glob
|
||||
|
||||
$(OUTDIR)/config.h: $(SRCDIR)/configh.dos
|
||||
command.com /c copy /Y $(subst /,\\,$< $@)
|
||||
MKDIR = command.com /c mkdir
|
||||
MKDIR.cmd = $(MKDIR) $(subst /,\\,$@)
|
||||
|
||||
RM = command.com /c del /F /Q
|
||||
RM.cmd = $(RM) $(subst /,\\,$(OBJECTS) $(PROG))
|
||||
|
||||
CP = command.com /c copy /Y
|
||||
CP.cmd = $(CP) $(subst /,\\,$< $@)
|
||||
|
||||
$(OUTDIR)src/config.h: $(SRCDIR)/src/configh.dos
|
||||
$(CP.cmd)
|
||||
|
||||
Reference in New Issue
Block a user