MCTP-release/Makefile

67 lines
1.8 KiB
Makefile
Raw Permalink Normal View History

2024-04-02 05:00:08 +00:00
# SPDX-License-Identifier: Apache-2.0
# ******************************************************************************
#
# @file Makefile
#
# @brief Makefile for MCTP library
#
# @copyright Copyright (C) 2024 Jackrabbit Founders LLC. All rights reserved.
#
# @date Mar 2024
# @author Barrett Edwards <code@jrlabs.io>
#
# ******************************************************************************
CC=gcc
2024-04-08 05:46:20 +00:00
CFLAGS?= -g3 -O0 -Wall -Wextra
MACROS?=-D MCTP_VERBOSE
INCLUDE_DIR?=/usr/local/include
LIB_DIR?=/usr/local/lib
2024-04-02 05:00:08 +00:00
INCLUDE_PATH=-I $(INCLUDE_DIR)
LIB_PATH=-L $(LIB_DIR)
LIBS=-l uuid -l ptrqueue -l arrayutils -l fmapi -l emapi -l timeutils
TARGET=mctp
2024-04-08 05:46:20 +00:00
all: lib$(TARGET).a
2024-04-02 05:00:08 +00:00
client: client.c main.o threads.o ctrl.o
$(CC) $^ $(CFLAGS) $(MACROS) $(INCLUDE_PATH) $(LIB_PATH) $(LIBS) -o $@
server: server.c main.o threads.o ctrl.o
$(CC) $^ $(CFLAGS) $(MACROS) $(INCLUDE_PATH) $(LIB_PATH) $(LIBS) -o $@
lib$(TARGET).a: main.o threads.o ctrl.o
ar rcs $@ $^
ctrl.o: ctrl.c main.o
$(CC) -c $< $(CFLAGS) $(MACROS) $(INCLUDE_PATH) -o $@
threads.o: threads.c main.o
$(CC) -c $< $(CFLAGS) $(MACROS) $(INCLUDE_PATH) -o $@
main.o: main.c main.h
$(CC) -c $< $(CFLAGS) $(MACROS) $(INCLUDE_PATH) -o $@
clean:
rm -rf ./*.o ./*.a server client
doc:
doxygen
install: lib$(TARGET).a main.h
sudo cp lib$(TARGET).a $(LIB_DIR)/
sudo cp main.h $(INCLUDE_DIR)/$(TARGET).h
2024-04-08 05:46:20 +00:00
uninstall:
sudo rm $(LIB_DIR)/lib$(TARGET).a
sudo rm $(INCLUDE_DIR)/$(TARGET).h
2024-04-02 05:00:08 +00:00
# List all non file name targets as PHONY
2024-04-08 05:46:20 +00:00
.PHONY: all clean doc install uninstall
2024-04-02 05:00:08 +00:00
# Variables
# $^ Will expand to be all the sensitivity list
# $< Will expand to be the frist file in sensitivity list
# $@ Will expand to be the target name (the left side of the ":" )
# -c gcc will compile but not try and link