mirror / make Goto Github PK
View Code? Open in Web Editor NEWgit://git.savannah.gnu.org/make
License: GNU General Public License v3.0
git://git.savannah.gnu.org/make
License: GNU General Public License v3.0
Short: Port of GNU Make with SAS/C (no ixemul.library required) Author: GNU, Amiga port by Aaron "Optimizer" Digulla Uploader: Aaron "Optimizer" Digulla ([email protected]) Type: dev/c This is a pure Amiga port of GNU Make. It needs no extra libraries or anything. It has the following features (in addition to any features of GNU Make): - Runs Amiga-Commands with SystemTags() (Execute) - Can run multi-line statements - Allows to use Device-Names in targets: c:make : make.o is ok. To distinguish between device-names and target : or ::, MAKE looks for spaces. If there are any around :, it's taken as a target delimiter, if there are none, it's taken as the name of a device. Note that "make:make.o" tries to create "make.o" on the device "make:". - Replaces @@ by a newline in any command line: if exists make @@\ delete make.bak quiet @@\ rename make make.bak @@\ endif @@\ $(CC) Link Make.o To make works. Note that the @@ must stand alone (i.e., "make@@\" is illegal). Also be careful that there is a space after the "\" (i.e., at the beginning of the next line). - Can be made resident to save space and time - Amiga specific wildcards can be used in $(wildcard ...) BUGS: - The line dummy.h : src/*.c tries to make dummy.h from "src/*.c" (i.e., no wildcard-expansion takes place). You have to use "$(wildcard src/*.c)" instead. COMPILING FROM SCRATCH ---------------------- To recompile, you need SAS/C 6.51. As of GNU Make 4.3, the build environment has been cleaned up and alternate make files (including smakefiles) have been removed. If you have an existing version of GNU Make available you _should_ be able to run: make -f Basic.mk However this is untested. If you have an Amiga system and would like to collaborate on getting bootstrapping to work properly please contact [email protected]. INSTALLATION Copy make somewhere in your search path (e.g., sc:c or sc:bin). If you plan to use recursive makes, install make resident: Resident make Add ------------------------------------------------------------------------------- Copyright (C) 1995-2023 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 <https://www.gnu.org/licenses/>.
When I was writing Makefile
all:
@echo '$/'
Its output is not $/, but a newline character
all:
@echo '$_'
Its output is the make path of my operating system.
So I'm guessing that make does the same thing as calling shell environment variables when dealing with symbols like $_, $a, $b.
This caused me to be unable to use $ in regular expressions in Makefile.
I tried to build make it on windows using build_w32.bat. It failed because lib/getloadavg.c was not found. did you forgot to move it from src to lib folder?
When I tried to compile the repository, there occured the error:
src/job.c: In function ‘child_execute_job’:
src/job.c:2373:19: error: too few arguments to function ‘find_in_given_path’
cmd = (char *)find_in_given_path (argv[0], p, 0);
^~~~~~~~~~~~~~~~~~
In file included from src/job.c:141:0:
lib/findprog.h:68:20: note: declared here
extern const char *find_in_given_path (const char *progname, const char *path,
^~~~~~~~~~~~~~~~~~
Makefile:1410: recipe for target 'src/job.o' failed
make[1]: *** [src/job.o] Error 1
make[1]: Leaving directory '/home/river/Downloads/Ubuntu_installation_essential_components/make-4.2.92'
Makefile:1496: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
what should I do to solve the problem?
OS: Ubuntu 18.04 LTS(Desktop, 64-bits)
From what I've been looking at, is have alternate ways to set GNU Make specific MAKEFLAGS
? (if two variants of make are installed in a system, such as nmake).
Then it may be possible to set GMAKEFLAGS=j17
so that other commands cannot parse this variable. The old behavior would still be helpful for systems which do not have this problem.
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Minimal example of the issue:
# foo/makefile
echo-makeflags:
@echo $(MAKEFLAGS)
Command line:
$: make -B echo-makeflags
B
When passing to submake, I have the following problem: suppose there are no makeflags?
# bar/makefile
relay-%:
ifdef $(MAKEFLAGS)
some-command-relay-technique $* -$(MAKEFLAGS)
else
some-command-relay-technique $*
endif
# fix
ifdef MAKEFLAGS
RELAYFLAGS+=-$(MAKEFLAGS)
endif
# but now RELAYFLAGS is introduced
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.