CXX=c++
CXXFLAGS=-Wall -std=c++14
PIC_FLAG=-fPIC
TARGET=my_robot_app
all: dynamic_version
static_lib:robotics.h
@echo"--- Bulding Static Library (.a)---"
$(CXX) $(CXXFLAGS) -c robotics.h -o robotics.o
ar rcs librobotics.a robotics.o
@echo "librobotics.a is ready!"
dynamic_lib: robotics.h
@echo "---Building Dynamic Library (.so)---"
$(CXX) $(CXXFLAGS) $(PIC_FLAG) -c robotics.h -o robotics.o
$(CXX) -shared -W1,-soname,librobotics.so.1 -o librobotics.so.1.0 robotics.o
ln -sf librobotics.so.1.0 librobotics.so.1
ln -sf librobotics.so.1.0 librobotics.so
@echo "librobotics.so is ready!"
dynamic_version: dynamic_lib main.cpp
@echo "---Building Executable---"
$(CXX) $(CXXFLAGS) main.cpp -L. -lrobotics -o $(TARGET)
@echo "Programme $(TARGET) is ready! To run, yoy may need to run: export LD_LIBRARY_PATH=."
clean:
	@echo "---Clearing files---"
	rm -f *.o *.a *.so* $(TARGET)
