CC1=gcc
CC2=g++
CFLAGS1=-c -O3 -DNDEBUG
CFLAGS2=-c -std=c++11 -O3 -DNDEBUG
LDFLAGS=-static
SOURCES1=cperm-cos.c
SOURCES2=sperm.cpp main.cpp
OBJECTS1=$(SOURCES1:.c=.o)
OBJECTS2=$(SOURCES2:.cpp=.o)
EXECUTABLE1=cperm
EXECUTABLE2=sperm
OTHERS=cperm.c sperm.hpp Makefile
ZIP=zip
ZIPFILE=cperm.zip

all: $(EXECUTABLE1) $(EXECUTABLE2) $(ZIPFILE)

$(EXECUTABLE1): $(OBJECTS1)
	$(CC1) $(OBJECTS1) $(LDFLAGS) -o $@

$(EXECUTABLE2): $(OBJECTS2)
	$(CC2) $(OBJECTS2) $(LDFLAGS) -o $@

.c.o:
	$(CC1) $(CFLAGS1) $< -o $@

.cpp.o:
	$(CC2) $(CFLAGS1) $< -o $@
	
$(ZIPFILE): $(SOURCES1) $(SOURCES2) $(OTHERS)
	$(ZIP) $(ZIPFILE) $(SOURCES1) $(SOURCES2) $(OTHERS)

clean:
	rm -f $(OBJECTS1) $(OBJECTS2) $(EXECUTABLE1) $(EXECUTABLE2) $(ZIPFILE)

.PHONY: all clean
