The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > OS Specific Forums > Linux
Google UNIX.COM



View Single Post in UNIX Forums - Click on the Thread or Permalink to View Entire Thread -->
  #7 (permalink)  
Old 05-13-2008
borzh62 borzh62 is offline
Registered User
 

Join Date: May 2008
Posts: 6
Cool Figured it out

I figured it out. The solution was to use timestamps. Here is the makefile:

Code:
MASTER_SRC_DIR         = master_src
MASTER_SRC_FILES       = $(wildcard $(MASTER_SRC_DIR)/*.c)
SPECIFIC_SRC_DIR       = platform_src
SPECIFIC_SRC_FILES     = $(wildcard $(SPECIFIC_SRC_DIR)/*.c)

SOURCE_DIR             = tmp
SOURCE_FILES           = $(subst $(MASTER_SRC_DIR),$(SOURCE_DIR),$(MASTER_SRC_FILES)) \
                         $(subst $(SPECIFIC_SRC_DIR),$(SOURCE_DIR),$(SPECIFIC_SRC_FILES))

TIMESTAMP_MASTER_SRC   = $(SOURCE_DIR)/MasterSrc.time
TIMESTAMP_PLATFORM_SRC = $(SOURCE_DIR)/PlatformSrc.time

all: $(SOURCE_FILES)

$(SOURCE_FILES): $(TIMESTAMP_MASTER_SRC) $(TIMESTAMP_PLATFORM_SRC)

$(TIMESTAMP_MASTER_SRC): $(MASTER_SRC_FILES)
	$(foreach FILE, $?, \
		if [ ! -e $(subst $(MASTER_SRC_DIR),$(SPECIFIC_SRC_DIR),$(FILE)) ] ; then cp $(FILE) $(SOURCE_DIR)/ ; \
		else cp $(subst $(MASTER_SRC_DIR),$(SPECIFIC_SRC_DIR),$(FILE)) $(SOURCE_DIR)/ ; fi ; \
	)
	echo Do not delete! >$(TIMESTAMP_MASTER_SRC)

$(TIMESTAMP_PLATFORM_SRC): $(SPECIFIC_SRC_FILES)
	$(foreach FILE, $?, cp $(FILE) $(SOURCE_DIR)/ ; )
	echo Do not delete! >$(TIMESTAMP_PLATFORM_SRC)
That's it. As era said it's pretty ugly, but it's working. Can close the thread now.

Last edited by borzh62; 05-13-2008 at 07:03 AM.
Reply With Quote