7
7
CXX = g++
8
8
CXXFLAGS = -g -O2 -Wall
9
9
# 2. Compiler And Linker Keys (man gcc)
10
- LIB_NAME = libMySharedLib.so
10
+ PROJECT_NAME = libMySharedLib
11
+ LIB_NAME = $(PROJECT_NAME ) .so
11
12
LIB_VERSION_OPTION = 1.0
12
13
LIB_BUILD_DIRECTORY = .
14
+ LIB_INSTALL_DIR = /usr/lib
15
+ LIB_INCLUDE_DIR = /usr/include/$(PROJECT_NAME )
13
16
14
17
LIB_COMPILE_OPTION = -fPIC
15
18
LIB_LINK_OPTION = -shared
@@ -65,7 +68,8 @@ create-build-dir:
65
68
@ -mkdir -p $(LIB_BUILD_DIRECTORY )
66
69
67
70
$(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 )
69
73
70
74
# These are the suffix replacement rules
71
75
% .o : % .c
@@ -77,7 +81,18 @@ $(CPP_SHARED_LIB):$(C_OBJFILES) $(CPP_OBJFILES)
77
81
clean :
78
82
@ -rm -f $(CPP_OBJFILES )
79
83
@ -rm -f $(CPP_SHARED_LIB )
84
+ @ -rm -f $(LIB_NAME )
80
85
@ -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 )
81
96
82
97
copy-include :
83
98
@ mkdir -p $(LIB_BUILD_DIRECTORY ) /include
0 commit comments