112 lines
2.3 KiB
Makefile
112 lines
2.3 KiB
Makefile
ifndef OBJ_DIR
|
|||
|
|
OBJ_DIR = obj
|
||
|
|
endif
|
||
|
|
|
||
|
|
all:demo
|
||
|
|
|
||
|
|
install:libpm_install libinput-uevent_install pm-demo_install
|
||
|
|
|
||
|
|
uninstall:libpm_uninstall libinput-uevent_uninstall pm-demo_uninstall
|
||
|
|
|
||
|
|
clean:lib_clean pm-demo_clean
|
||
|
|
|
||
|
|
dir:
|
||
|
|
mkdir -p $(OBJ_DIR)
|
||
|
|
|
||
|
|
pm-dir = src
|
||
|
|
utils-dir = utils
|
||
|
|
input_uevent-dir = input_uevent
|
||
|
|
demo-dir = demo
|
||
|
|
|
||
|
|
TARGET = $(OBJ_DIR)/libpm.so
|
||
|
|
TARGET_INC = src/pm.h
|
||
|
|
CFLAGS = -Wall \
|
||
|
|
-g \
|
||
|
|
-O \
|
||
|
|
-fPIC \
|
||
|
|
-Iutils
|
||
|
|
LIBS = -lpthread \
|
||
|
|
-lrt
|
||
|
|
SRCS = $(wildcard $(pm-dir)/*.c $(utils-dir)/*.c)
|
||
|
|
OBJS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(SRCS)))
|
||
|
|
|
||
|
|
libpm:dir $(OBJS)
|
||
|
|
$(CC) $(CFLAGS) -shared -o $(TARGET) $(OBJS) $(LIBS)
|
||
|
|
|
||
|
|
$(OBJS):$(SRCS)
|
||
|
|
$(foreach var,$^,\
|
||
|
|
$(CC) $(CFLAGS) -c $(var) -o $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(var)));\
|
||
|
|
)
|
||
|
|
|
||
|
|
libpm_install:
|
||
|
|
cp $(TARGET) /usr/lib
|
||
|
|
cp $(TARGET_INC) /usr/include
|
||
|
|
|
||
|
|
libpm_uninstall:
|
||
|
|
rm -f /usr/lib/$(notdir $(TARGET))
|
||
|
|
rm -f usr/include/$(notdir $(TARGET_INC))
|
||
|
|
|
||
|
|
TARGET_I = $(OBJ_DIR)/libinput-uevent.so
|
||
|
|
TARGET_I_INC = input_uevent/input_uevent.h
|
||
|
|
CFLAGS_I = -Wall \
|
||
|
|
-g \
|
||
|
|
-O \
|
||
|
|
-fPIC \
|
||
|
|
-D_GNU_SOURCE \
|
||
|
|
-Iutils
|
||
|
|
LIBS_I = -lpthread \
|
||
|
|
-lrt
|
||
|
|
SRCS_I = $(wildcard $(input_uevent-dir)/*.c $(utils-dir)/*.c)
|
||
|
|
OBJS_I = $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(SRCS_I)))
|
||
|
|
|
||
|
|
libinput-uevent:dir $(OBJS_I)
|
||
|
|
$(CC) $(CFLAGS_I) -shared -o $(TARGET_I) $(OBJS_I) $(LIBS_I)
|
||
|
|
|
||
|
|
$(OBJS_I):$(SRCS_I)
|
||
|
|
$(foreach var,$^,\
|
||
|
|
$(CC) $(CFLAGS_I) -c $(var) -o $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(var)));\
|
||
|
|
)
|
||
|
|
|
||
|
|
libinput-uevent_install:
|
||
|
|
cp $(TARGET_I) /usr/lib
|
||
|
|
cp $(TARGET_I_INC) /usr/include
|
||
|
|
|
||
|
|
libinput-uevent_uninstall:
|
||
|
|
rm -f /usr/lib/$(notdir $(TARGET_I))
|
||
|
|
rm -f /usr/include/$(notdir $(TARGET_I_INC))
|
||
|
|
|
||
|
|
lib_clean:
|
||
|
|
rm -f $(OBJ_DIR)/*.o
|
||
|
|
rm -f $(OBJ_DIR)/*.so
|
||
|
|
|
||
|
|
TARGET_D = $(OBJ_DIR)/pm-demo
|
||
|
|
CFLAGS_D = -Wall \
|
||
|
|
-g \
|
||
|
|
-O \
|
||
|
|
-Iinput_uevent \
|
||
|
|
-Isrc
|
||
|
|
LIBS_D = -linput-uevent \
|
||
|
|
-lpm \
|
||
|
|
-lpthread
|
||
|
|
LIBPATH_D = -L$(OBJ_DIR)
|
||
|
|
SRCS_D = $(wildcard $(demo-dir)/*.c)
|
||
|
|
OBJS_D = $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(SRCS_D)))
|
||
|
|
|
||
|
|
demo:dir libpm libinput-uevent $(OBJS_D)
|
||
|
|
$(CC) $(CFLAGS_D) -o $(TARGET_D) $(OBJS_D) $(LIBPATH_D) $(LIBS_D)
|
||
|
|
|
||
|
|
$(OBJS_D):$(SRCS_D)
|
||
|
|
$(foreach var,$^,\
|
||
|
|
$(CC) $(CFLAGS_D) -c $(var) -o $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(var)));\
|
||
|
|
)
|
||
|
|
|
||
|
|
pm-demo_install:
|
||
|
|
cp $(TARGET_D) /usr/bin
|
||
|
|
|
||
|
|
pm-demo_uninstall:
|
||
|
|
rm -f /usr/bin/$(notdir $(TARGET_D))
|
||
|
|
|
||
|
|
pm-demo_clean:
|
||
|
|
rm -f $(OBJ_DIR)/*.o
|
||
|
|
rm -f $(TARGET_D)
|