আমি মেকফাইলগুলিতে খুব নতুন এবং আমি মেকফিল ব্যবহার করে ডিরেক্টরি তৈরি করতে চাই। আমার প্রকল্প ডিরেক্টরিটি এর মতো
+--Project
+--output
+--source
+Testfile.cpp
+Makefile
আমি সমস্ত অবজেক্ট এবং আউটপুট সংশ্লিষ্ট আউটপুট ফোল্ডারে রাখতে চাই। আমি ফোল্ডার কাঠামো তৈরি করতে চাই যা সংকলনের পরে এই জাতীয় হবে।
+--Project
+--output
+--debug (or release)
+--objs
+Testfile.o
+Testfile (my executable file)
+--source
+Testfile.cpp
+Makefile
আমি বেশ কয়েকটি বিকল্প দিয়ে চেষ্টা করেছি, তবে সফল হতে পারিনি। দয়া করে মেক ফাইল ব্যবহার করে ডিরেক্টরিগুলি তৈরি করতে আমাকে সহায়তা করুন। আমি আপনার বিবেচনার জন্য আমার মেকফিল পোস্ট করছি।
#---------------------------------------------------------------------
# Input dirs, names, files
#---------------------------------------------------------------------
OUTPUT_ROOT := output/
TITLE_NAME := TestProj
ifdef DEBUG
TITLE_NAME += _DEBUG
else
ifdef RELEASE
TITLE_NAME += _RELEASE
endif
endif
# Include all the source files here with the directory tree
SOURCES := \
source/TestFile.cpp \
#---------------------------------------------------------------------
# configs
#---------------------------------------------------------------------
ifdef DEBUG
OUT_DIR := $(OUTPUT_ROOT)debug
CC_FLAGS := -c -Wall
else
ifdef RELEASE
OUT_DIR := $(OUTPUT_ROOT)release
CC_FLAGS := -c -Wall
else
$(error no build type defined)
endif
endif
# Put objects in the output directory.
OUT_O_DIR := $(OUT_DIR)/objs
#---------------------------------------------------------------------
# settings
#---------------------------------------------------------------------
OBJS = $(SOURCES:.cpp=.o)
DIRS = $(subst /,/,$(sort $(dir $(OBJS))))
DIR_TARGET = $(OUT_DIR)
OUTPUT_TARGET = $(OUT_DIR)/$(TITLE_NAME)
CC_FLAGS +=
LCF_FLAGS :=
LD_FLAGS :=
#---------------------------------------------------------------------
# executables
#---------------------------------------------------------------------
MD := mkdir
RM := rm
CC := g++
#---------------------------------------------------------------------
# rules
#---------------------------------------------------------------------
.PHONY: all clean title
all: title
clean:
$(RM) -rf $(OUT_DIR)
$(DIR_TARGET):
$(MD) -p $(DIRS)
.cpp.o:
@$(CC) -c $< -o $@
$(OBJS): $(OUT_O_DIR)/%.o: %.cpp
@$(CC) -c $< -o $@
title: $(DIR_TARGET) $(OBJS)
আগাম ধন্যবাদ. আমি যদি কোন ভুল করে থাকে তবে দয়া করে আমাকে গাইড করুন।
output/debug', needed by
ডিরেক্টরিগুলি তৈরি করার কোনও নিয়ম নেই ।" থামুন। তবে আমি এখন তা নিয়ে চিন্তা করব না। বুনিয়াদি বিধি বদ্ধ থাকবে stick :)। গাইড করার জন্য আপনাকে ধন্যবাদ। এবং আমি কেবল শীর্ষ স্তরের ডিরেক্টরি থেকে "মেক" চালাচ্ছি।