https://github.com/henrycg/earand
Raw File
Tip revision: 362625f3847ddd2e2d5a90cf5f93b4b3ea76e059 authored by Henry Corrigan-Gibbs on 21 May 2018, 19:54:59 UTC
Merge branch 'master' of github.com:henrycg/earand
Tip revision: 362625f
Makefile
# Compile for x86
CC = gcc
LIBS = -lssl -lcrypto 

# Compile for DD-WRT router
#CC = ~/ddwrt/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-uclibc-gcc
#LIBS = -ldl libssl.a libcrypto.a 

CFLAGS = -g -Wall -O1 -pedantic -std=gnu99 -Wno-deprecated #-DDEBUG 
LDFLAGS = $(CFLAGS) 
TEST_SCRIPT = ./mkmutest

#####
# Sources 

HEADERS = bn_prime.h dsa_ca.h dsa_device.h dsa_ea.h dsa_params.h\
            gen_keys.h integer_group.h pedersen_proof.h product_proof.h\
            rsa_ca.h rsa_device.h rsa_ea.h rsa_params.h \
            ssl_client.h ssl_server.h util.h
SOURCES = ca_server.c dsa_ca.c dsa_ea.c dsa_device.c \
            dsa_params.c ea_server.c gen_keys.c integer_group.c \
						pedersen_proof.c product_proof.c\
						main.c rsa_ca.c rsa_device.c rsa_ea.c rsa_params.c \
            ssl_client.c ssl_server.c util.c

#####
# Test

TEST_MUTEST = mutest.h
TEST_HEADERS = $(TEST_MUTEST) test_common.h
TEST_SOURCES = mutest.c \
	test_pedersen_proof.c\
  test_dsa_device.c\
  test_product_proof.c\
	test_dsa_params.c\
  test_rsa_params.c\
  test_rsa_device.c\
  test_integer_group.c \
  test_util.c

TARGET = main 
TARGET_MAIN = main.o

CA_TARGET = ca_server
CA_MAIN = $(CA_TARGET).o

EA_TARGET = ea_server
EA_MAIN = $(EA_TARGET).o

TEST_TARGET = mutest
TEST_MAIN = runmutest.o


MAINS = $(CA_MAIN) $(EA_MAIN) $(TARGET_MAIN) $(TEST_MAIN) 

OBJECTS =  $(SOURCES:.c=.o)
NON_MAIN_OBJECTS = $(filter-out $(MAINS), $(OBJECTS))
TEST_OBJECTS =  $(TEST_SOURCES:.c=.o)
TEST_NON_MAIN_OBJECTS = $(filter-out $(MAINS), $(TEST_OBJECTS))

all: $(TARGET) $(TEST_TARGET) $(CA_TARGET) $(EA_TARGET)

$(OBJECTS): $(SOURCES) $(HEADERS)
	$(CC) $(CFLAGS) $(SOURCES) -c $(INCLUDES)

$(TEST_OBJECTS): $(SOURCES) $(HEADERS) $(TEST_SOURCES) $(TEST_HEADERS)
	$(CC) $(CFLAGS) $(TEST_SOURCES) -c $(INCLUDES)

$(TARGET): $(TARGET_MAIN) $(NON_MAIN_OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $(TARGET_MAIN) $(NON_MAIN_OBJECTS) $(LIBS)

$(CA_TARGET): $(CA_MAIN) $(NON_MAIN_OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $(CA_MAIN) $(NON_MAIN_OBJECTS) $(LIBS)

$(EA_TARGET): $(EA_MAIN) $(NON_MAIN_OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $(EA_MAIN) $(NON_MAIN_OBJECTS) $(LIBS)

$(TEST_TARGET): $(OBJECTS) $(TEST_OBJECTS)
	$(TEST_SCRIPT) $(TEST_MUTEST) $(TEST_NON_MAIN_OBJECTS) | $(CC) -xc -c -o $(TEST_MAIN) -
	$(CC) $(LDFLAGS) -o $@ $(NON_MAIN_OBJECTS) $(TEST_OBJECTS) $(TEST_MAIN) $(LIBS)

prime: prime.c prime.h
	$(CC) $(CFLAGS) -o $@ prime.c util.c -lcrypto -lssl

.PHONY: clean
clean:
	rm -fr $(TARGET) $(CA_MAIN) $(OBJECTS) $(TEST_OBJECTS) \
    $(CA_TARGET) $(EA_TARGET) $(TEST_TARGET)
back to top