gem-graph-server/Makefile

61 lines
2.7 KiB
Makefile
Raw Normal View History

#=----------------------------------------------------------------------------=#
# Makefile #
# #
# Copyright © 2021 The Gem-graph Project #
# #
# This file is part of gem-graph. #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU Affero General Public License as #
# published by the Free Software Foundation, either version 3 of the #
# License, or (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU Affero General Public License for more details. #
# #
# You should have received a copy of the GNU Affero General Public License #
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
#=----------------------------------------------------------------------------=#
2021-06-08 20:15:47 +02:00
CCINCLUDES=-Iinclude
CCOPTS=-pthread -Wall
LDFLAGS= -lc -lpthread
2021-06-08 18:05:32 +02:00
BINDIR=bin
SRCDIR=src
2021-06-08 20:15:47 +02:00
DEBDIR=debian
OBJ=$(BINDIR)/scheduler.o $(BINDIR)/server.o $(BINDIR)/localthread.o $(BINDIR)/main.o
2021-06-08 18:05:32 +02:00
.DEFAULT_GOAL:= all
2021-06-08 20:15:47 +02:00
.PHONY: all clean deb
2021-06-08 18:05:32 +02:00
2021-04-10 22:03:38 +02:00
# ---- General recipes ------------------------------------------------------- #
2021-06-08 20:15:47 +02:00
$(BINDIR)/%.o: $(SRCDIR)/%.c
@echo "Compiling $<"
@$(CC) $(CCINCLUDES) $(CCOPTS) $(CCFLAGS) -c -o $@ $<
2021-04-10 23:02:40 +02:00
2021-04-10 22:03:38 +02:00
# ---- Main recipe ----------------------------------------------------------- #
2021-06-08 20:15:47 +02:00
$(BINDIR)/gem-graph-server: $(OBJ)
2021-04-10 22:03:38 +02:00
@echo "Building program to $@"
2021-06-08 20:15:47 +02:00
@$(CC) -o $@ $(OBJ) $(LDFLAGS)
2021-04-10 22:03:38 +02:00
@echo "Success!"
2021-04-09 18:01:29 +02:00
2021-04-10 22:03:38 +02:00
# ---- Misc recipes ---------------------------------------------------------- #
clean:
2021-06-08 20:15:47 +02:00
rm -rf $(SRCDIR)/*.o $(BINDIR)/* *.deb
2021-04-09 18:01:29 +02:00
2021-04-10 23:23:41 +02:00
all: $(DYNLIBS) $(BINDIR)/gem-graph-server
2021-06-08 20:15:47 +02:00
# ---- Build debian package -------------------------------------------------- #
$(BINDIR)/gem-graph-server.deb: all
mkdir -p gem-graph-server/usr/bin
mkdir -p gem-graph-server/DEBIAN
cp $(DEBDIR)/Manifest gem-graph-server/DEBIAN/control
2021-06-08 20:20:27 +02:00
cp $(BINDIR)/gem-graph-server gem-graph-server/usr/bin
2021-06-08 20:15:47 +02:00
dpkg-deb --build gem-graph-server
rm -rf gem-graph-server
deb: $(BINDIR)/gem-graph-server.deb