gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gm2] Makefile to compile Modula code


From: Duke Normandin
Subject: Re: [Gm2] Makefile to compile Modula code
Date: Thu, 21 Oct 2010 07:23:33 -0600 (MDT)
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)

On Thu, 21 Oct 2010, Gaius Mulley wrote:

> Duke Normandin <address@hidden> writes:
>
> > Hello Gaius and list...
> >
> > @Gaius
> >
> > How good are you at creating Makefiles?
> >
> > I have a Makefile that I use to compile Oberon-2 code which works very
> > well. I adapted it to gm2, but I can't get the bloody thing to create
> > the object file using gm2. Are you up to having a look at this
> > Makefile?
>
> Hi Duke,
>
> yes sure, post the Makefile..

Cool! Here it is:

[code]
# Generic Makefile for use with Gaius Mulley's
#              GNU Modula-2 Compiler
# Author: Duke Normandin - address@hidden
# with the help of:
#       Edward Welbourne eddy(at)chaos(dot)org(dot)uk
#       Henrik Carlqvist hc123(at)poolhem.se
# 5 Oct. 2010 -> 1st edition
#
# If you make improvements, please forward me a
# copy, so that I too can get a clue. Thanks!
# enjoy!

# Get CLI arguments - see Usage: target
define assert
$(call assert,$($ARGS), The variable "$ARGS" is null)
endef

# save CLI arguments
EXEC-FILE = $(word 1, $(ARGS))
SRCS = $(wordlist 2, 999, $(ARGS))

# The GM2 Compiler is pretty simple to operate
#
# to compile a 1+ modules "long-hand" would require:
# gm2 -c module-1.mod
# gm2 -c module-2.mod
# gm2 -o exec-file module-1.o module-2.o
#

LINK = gm2
MODULA = gm2 -c


# Rule #1 generate the executable file from its dependencies (source files)
# In turn generate the object code (.o files) from its like-named source (.mod) 
file
# Using the command on the TAB-indented line
$(EXEC-FILE): $(SRCS:%.o=%.mod)
#       $(LINK) $@ $^
        $(LINK) $^ -o $@

# Rule #2 generate the object code (.o files) from its like-named source (.mod) 
file
# Using the command on the TAB-indented line
%.o: %.mod
        $(MODULA) $<

.PHONY: usage
usage:
        @echo "Usage:"
        @echo "make ARGS=\"exec-file src-1.mod scr-2.mod ... src-n.mod\""
        @echo "Make sure that the IMPORTed modules precede the \"main\" module"
        @echo "in the command line ARGS. Enjoy!"

.PHONY: clean
clean:
        rm -rf *.mod
[/code]

Can you see what might be the problem?
-- 
Duke



reply via email to

[Prev in Thread] Current Thread [Next in Thread]