Added macros to help simplify adding ciphers in future

This commit is contained in:
2018-04-30 13:32:24 -04:00
parent 7f23ef0b73
commit 7210f5849e

View File

@@ -1,62 +1,73 @@
#Macros that are corss platform
LIBFLAGS = -shared -std=c++11 -O3 -fPIC
EXEFLAGS = -std=c++11 -O3
TESTFLAGS = $(EXEFLAGS) -DTEST_VERSION
DEBUGFLAGS = $(TESTFLAGS) -g
LIBDIR = ./lib
CIPHERS = Caesar Playfair Vigenere Atbash
LIBFILES = $(patsubst %,SourceFiles/%.cpp,$(CIPHERS))
#For Linux
LinuxAll: libCaesar.a libPlayfair.a libVigenere.a libAtbash.a Ciphers
LinuxTest: libCaesar.a libPlayfair.a libVigenere.a libAtbash.a CiphersTest
LinuxDebug: CiphersDBG
allLinux: libsLinux Ciphers
testLinux: libsLinux CiphersTest
debugLinux: CiphersDBG
libsLinux: directory $(patsubst %, $(LIBDIR)/lib%.a,$(CIPHERS))
LINUXLIBS = $(patsubst %, -l%,$(CIPHERS))
#For Windows
WindowsAll: libCaesar.lib libPlayfair.lib libVigenere.lib libAtbash.lib Ciphers.exe
WindowsTest: libCaesar.lib libPlayfair.lib libVigenere.lib libAtbash.lib CiphersTest.exe
WindowsDebug: CipherDBG.exe
allWindows: libsWindows Ciphers.exe
testWindows: libsWindows CiphersTest.exe
debugWindows: CipherDBG.exe
#Keeping the old one for now, until I can test it to make sure it works
#WindowsLibs: libCaesar.lib libPlayfair.lib libVigenere.lib libAtbash.lib
#WINDOWSLIBS = -llibCaesar -llibPlayfair -llibVigenere -llibAtbash
libsWindows: directory $(patsubst %, $(LIBDIR)/lib%.lib,$(CIPHERS))
WINDOWSLIBS = $(patsubst %, -llib%,$(CIPHERS))
directory:
mkdir -p lib
mkdir -p $(LIBDIR)
#Linux
libCaesar.a: SourceFiles/Caesar.cpp directory
$(CXX) -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Caesar.cpp
libPlayfair.a: SourceFiles/Playfair.cpp directory
$(CXX) -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Playfair.cpp
libVigenere.a: SourceFiles/Vigenere.cpp directory
$(CXX) -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Vigenere.cpp
libAtbash.a: SourceFiles/Atbash.cpp directory
$(CXX) -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Atbash.cpp
$(LIBDIR)/lib%.a: SourceFiles/%.cpp
$(CXX) $(LIBFLAGS) -o $@ $<
Ciphers: main.cpp helperFunctions.hpp
$(CXX) -O3 -std=c++11 -o $@ main.cpp -L ./lib -lCaesar -lPlayfair -lVigenere -lAtbash
$(CXX) $(EXEFLAGS) -o $@ main.cpp -L $(LIBDIR) $(LINUXLIBS)
CiphersTest: main.cpp
$(CXX) -O3 -std=c++11 -DTEST_VERSION -o Ciphers $< -L ./lib -lCaesar -lPlayfair -lVigenere -lAtbash
$(CXX) $(TESTFLAGS) -o Ciphers $< -L $(LIBDIR) $(LINUXLIBS)
CiphersDBG: main.cpp SourceFiles/Caesar.cpp SourceFiles/Playfair.cpp SourceFiles/Vigenere.cpp SourceFiles/Atbash.cpp
$(CXX) -O3 -std=c++11 -g -DTEST_VERSION -o $@ $<
CiphersDBG: main.cpp $(LIBFILES)
$(CXX) $(DEBUGFLAGS) -o $@ $<
#Windows
libCaesar.lib: SourceFiles/Caesar.cpp directory
g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Caesar.cpp
#libCaesar.lib: SourceFiles/Caesar.cpp directory
# g++ $(LIBFLAGS) -o lib/$@ SourceFiles/Caesar.cpp
libPlayfair.lib: SourceFiles/Playfair.cpp directory
g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Playfair.cpp
#libPlayfair.lib: SourceFiles/Playfair.cpp directory
# g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Playfair.cpp
libVigenere.lib: SourceFiles/Vigenere.cpp directory
g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Vigenere.cpp
#libVigenere.lib: SourceFiles/Vigenere.cpp directory
# g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Vigenere.cpp
libAtbash.lib: SourceFiles/Atbash.cpp directory
g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Vigenere.cpp
#libAtbash.lib: SourceFiles/Atbash.cpp directory
# g++ -shared -std=c++11 -O3 -fPIC -o lib/$@ SourceFiles/Atbash.cpp
$(LIBDIR)/lib%.lib: SourceFiles/%.cpp
g++ $(LIBFLAGS) -o $@ $<
Ciphers.exe: main.cpp helperFunctions.hpp
g++ -std=c++11 -O3 -o $@ main.cpp -L ./lib -llibCaesar -llibPlayfair -llibVigenere -llibAtbash
g++ $(EXEFLAGS) -o $@ main.cpp -L $(LIBDIR) $(WINDOWSLIBS)
CiphersTest.exe: main.cpp
g++ -std=c++11 -O3 -DTEST_VERSION -o Ciphers.exe $< -L ./lib -llibCaesar -llibPlayfair -llibVigenere -llibAtbash
g++ $(TESTFLAGS) -o Ciphers.exe $< -L $(LIBDIR) $(WINDOWSLIBS)
CiphersDBG.exe: main.cpp SourceFiles/Caesar.cpp SourceFiles/Playfair.cpp SourceFiles/Vigenere.cpp SourceFiles/Vigenere.cpp SourceFiles/Atbash.cpp
g++ -std=c++11 -O3 -g -DTEST_VERSION -o $@ $<
CiphersDBG.exe: main.cpp $(LIBFILES)
g++ $(DEBUGFLAGS) -o $@ $<
#Cleaning Shop