77CXX = g++
88CXXFLAGS = -g -O2 -Wall
99# 2. Compiler And Linker Keys (man gcc)
10- LIB_NAME = libMySharedLib.so
10+ PROJECT_NAME = libMySharedLib
11+ LIB_NAME = $(PROJECT_NAME ) .so
1112LIB_VERSION_OPTION = 1.0
1213LIB_BUILD_DIRECTORY = .
14+ LIB_INSTALL_DIR = /usr/lib
15+ LIB_INCLUDE_DIR = /usr/include/$(PROJECT_NAME )
1316
1417LIB_COMPILE_OPTION = -fPIC
1518LIB_LINK_OPTION = -shared
@@ -65,7 +68,8 @@ create-build-dir:
6568 @ -mkdir -p $(LIB_BUILD_DIRECTORY )
6669
6770$(CPP_SHARED_LIB ) :$(C_OBJFILES ) $(CPP_OBJFILES )
68- $(CXX ) $(CXXFLAGS ) $(LANG_OPTION ) $(LIB_LINK_OPTION ) $(DEFS ) $(INCLUDES ) $(LIBPATH ) $(LIBS ) -o $(CPP_SHARED_LIB ) $(CPP_OBJFILES )
71+ $(CXX ) $(LIB_LINK_OPTION )$(LIBPATH ) $(LIBS ) -o $(CPP_SHARED_LIB ) $(CPP_OBJFILES )
72+ @ ln -s $(CPP_SHARED_LIB ) $(LIB_NAME )
6973
7074# These are the suffix replacement rules
7175% .o : % .c
@@ -77,7 +81,18 @@ $(CPP_SHARED_LIB):$(C_OBJFILES) $(CPP_OBJFILES)
7781clean :
7882 @ -rm -f $(CPP_OBJFILES )
7983 @ -rm -f $(CPP_SHARED_LIB )
84+ @ -rm -f $(LIB_NAME )
8085 @ -rm -rf $(LIB_BUILD_DIRECTORY ) /include
86+
87+ install :
88+ @ cp $(CPP_SHARED_LIB ) $(LIB_INSTALL_DIR )
89+ @ ln -s $(LIB_INSTALL_DIR ) /$(LIB_NAME ) .$(LIB_VERSION_OPTION ) $(LIB_INSTALL_DIR ) /$(LIB_NAME )
90+ @ mkdir $(LIB_INCLUDE_DIR )
91+
92+ uninstall :
93+ @ rm $(LIB_INSTALL_DIR ) /$(LIB_NAME ) .$(LIB_VERSION_OPTION )
94+ @ rm $(LIB_INSTALL_DIR ) /$(LIB_NAME )
95+ @ rm -rf $(LIB_INCLUDE_DIR )
8196
8297copy-include :
8398 @ mkdir -p $(LIB_BUILD_DIRECTORY ) /include
0 commit comments