Code Monkey home page Code Monkey logo

make's Introduction

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/>.

make's People

Contributors

aldot avatar alexpux avatar andreas-schwab avatar atic-atac avatar bmwiedemann avatar bonzini avatar bwhacks avatar bwijen avatar cboos avatar ceggers-arri avatar duncan-moore avatar eggert avatar eli-zaretskii avatar goldsteinn avatar gtkiller avatar gvanem avatar iskunk avatar jaakristioja avatar jimblandy avatar joukewitteveen avatar kristovschulz avatar madscientist avatar meyering avatar moben avatar pfedin avatar rehsack avatar slattarini avatar snogglethorpe avatar trofi avatar wb8tyw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

make's Issues

Disambiguate/Specialize MAKEFLAGS for GNU Make

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.

Percentage resets after warning, then goes upto 200

I don't know whether this is expected behaviour or not but doesn't seem so
Percentage resets after warning, then goes upto 200 then stops displaying at all

GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
I was building Polyhedron demo for CGAL

And saw these 2 unexpected behaviour
Screenshot from 2020-10-09 20-16-45

Screenshot from 2020-10-09 20-14-28

lib/getloadavg.c missing

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?

MAKEFLAGS drops leading "-" in 4.3 release

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

src/job.c:2373:19: error: too few arguments to function ‘find_in_given_path’

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)

The error variable caused by '$'

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.