1
+ # Makefile pour Osmose-Backend
2
+ # Permet d'installer les dépendances, vérifier Docker Compose et construire les conteneurs
3
+
4
+ .PHONY : all install check-docker-compose build-docker help install-system-deps install-python-deps create-venv
5
+
6
+ # Couleurs pour les messages
7
+ YELLOW =\033[1;33m
8
+ GREEN =\033[1;32m
9
+ RED =\033[1;31m
10
+ NC =\033[0m # No Color
11
+
12
+ # Variables
13
+ VENV_NAME =osmose-backend-venv
14
+ DOCKER_COMPOSE_MIN_VERSION =1.29.0
15
+
16
+ all : help
17
+
18
+ help :
19
+ @echo " ${YELLOW} Osmose-Backend - Makefile d'installation${NC} "
20
+ @echo " "
21
+ @echo " Commandes disponibles:"
22
+ @echo " ${GREEN} make install${NC} - Installe toutes les dépendances nécessaires"
23
+ @echo " ${GREEN} make install-system-deps${NC} - Installe les dépendances système (Debian/Ubuntu)"
24
+ @echo " ${GREEN} make install-python-deps${NC} - Installe les dépendances Python"
25
+ @echo " ${GREEN} make create-venv${NC} - Crée et configure un environnement virtuel Python"
26
+ @echo " ${GREEN} make check-docker-compose${NC} - Vérifie si Docker Compose est installé"
27
+ @echo " ${GREEN} make build-docker${NC} - Construit les conteneurs Docker"
28
+ @echo " "
29
+
30
+ install : install-system-deps create-venv install-python-deps check-docker-compose
31
+ @echo " ${GREEN} Installation terminée avec succès!${NC} "
32
+
33
+ install-system-deps :
34
+ @echo " ${YELLOW} Installation des dépendances système...${NC} "
35
+ @if command -v apt-get > /dev/null 2>&1 ; then \
36
+ sudo apt-get update && \
37
+ sudo apt-get install -y git postgis python3 python3-dev python3-virtualenv \
38
+ build-essential libpq-dev protobuf-compiler libprotobuf-dev \
39
+ g++ libboost-python-dev libosmpbf-dev make pkg-config \
40
+ openjdk-11-jre-headless cmake extra-cmake-modules qtbase5-dev flex bison libarchive-dev; \
41
+ echo " ${GREEN} Dépendances système installées avec succès.${NC} " ; \
42
+ else \
43
+ echo " ${RED} Système non supporté. Veuillez installer manuellement les dépendances requises.${NC} " ; \
44
+ exit 1; \
45
+ fi
46
+
47
+ create-venv :
48
+ @echo " ${YELLOW} Création de l'environnement virtuel Python...${NC} "
49
+ @if [ -d " $( VENV_NAME) " ]; then \
50
+ echo " ${YELLOW} L'environnement virtuel existe déjà.${NC} " ; \
51
+ else \
52
+ python3 -m virtualenv --python=python3 $(VENV_NAME ) ; \
53
+ echo " ${GREEN} Environnement virtuel créé avec succès.${NC} " ; \
54
+ fi
55
+ @echo " ${YELLOW} Pour activer l'environnement virtuel, exécutez:${NC} "
56
+ @echo " source $( VENV_NAME) /bin/activate"
57
+
58
+ install-python-deps :
59
+ @echo " ${YELLOW} Installation des dépendances Python...${NC} "
60
+ @if [ -d " $( VENV_NAME) " ]; then \
61
+ . $(VENV_NAME ) /bin/activate && pip install -r requirements.txt && pip install -r requirements-dev.txt; \
62
+ echo " ${GREEN} Dépendances Python installées avec succès.${NC} " ; \
63
+ else \
64
+ echo " ${RED} L'environnement virtuel n'existe pas. Exécutez 'make create-venv' d'abord.${NC} " ; \
65
+ exit 1; \
66
+ fi
67
+ @echo " ${YELLOW} Compilation du module OMS PBF parser...${NC} "
68
+ @cd modules/osm_pbf_parser/ && make
69
+
70
+ check-docker-compose :
71
+ @echo " ${YELLOW} Vérification de Docker Compose...${NC} "
72
+ @if command -v docker-compose > /dev/null 2>&1 ; then \
73
+ echo " ${GREEN} Docker Compose est installé.${NC} " ; \
74
+ docker-compose --version; \
75
+ elif command -v docker > /dev/null 2>&1 && docker compose version > /dev/null 2>&1 ; then \
76
+ echo " ${GREEN} Docker Compose V2 est installé (via docker compose).${NC} " ; \
77
+ docker compose version; \
78
+ else \
79
+ echo " ${RED} Docker Compose n'est pas installé.${NC} " ; \
80
+ echo " ${YELLOW} Pour installer Docker Compose, suivez les instructions sur:${NC} " ; \
81
+ echo " https://docs.docker.com/compose/install/" ; \
82
+ exit 1; \
83
+ fi
84
+
85
+ build-docker :
86
+ @echo " ${YELLOW} Construction des conteneurs Docker...${NC} "
87
+ @if command -v docker-compose > /dev/null 2>&1 ; then \
88
+ cd docker && docker-compose build; \
89
+ elif command -v docker > /dev/null 2>&1 && docker compose version > /dev/null 2>&1 ; then \
90
+ cd docker && docker compose build; \
91
+ else \
92
+ echo " ${RED} Docker Compose n'est pas installé. Impossible de construire les conteneurs.${NC} " ; \
93
+ exit 1; \
94
+ fi
95
+ @echo " ${GREEN} Construction des conteneurs Docker terminée.${NC} "
96
+ @echo " ${YELLOW} Pour exécuter Osmose sur un pays (ex: Monaco):${NC} "
97
+ @echo " cd docker && docker-compose --project-name monaco run --rm backend ./osmose_run.py --country=monaco"
98
+ @echo " ${YELLOW} Pour arrêter et supprimer les conteneurs:${NC} "
99
+ @echo " cd docker && docker-compose --project-name monaco down"
0 commit comments