CXX         = g++
CXXFLAGS    = -pedantic -Wall -mthrowback -mmodule -O2 -std=c++11 -ffunction-sections -fdata-sections -s -g0
CC          = gcc
CCFLAGS     = -pedantic -Wall -mthrowback -mmodule -O2
ASM         = $(CC)
ASMFLAGS    = $(CCFLAGS)
LINK        = g++
LINKFLAGS   = -mmodule -Wl,-s
CMHG        = cmunge
CMHGFLAGS   = -tgcc -32bit -zbase -throwback
ASASM       = asasm

OBJSFULL = main.o module.o error.o file.o fwrite.o datawrite.o dataread.o floatform.o

MyChoices: $(OBJSFULL)
	$(LINK) $(LINKFLAGS) $(OBJSFULL) -o $@

.SUFFIXES:
.SUFFIXES: .cc .o .h .cmhg .s .c

.cc.o:;	$(CXX) $(CXXFLAGS) -c -o $@ $<
.c.o:;	$(CC) $(CCFLAGS) -c -o $@ $<
.s.o:;  $(ASASM) -o $@ $<

# CMunge invocation rule:
.cmhg.h:;	$(CMHG) $(CMHGFLAGS) -d $@ $<
.cmhg.o:;	$(CMHG) $(CMHGFLAGS) -o $@ $<

# Dependencies:
main.c main.cc: module.h
main.c main.cc: module.cmhg
