Skip to content
Snippets Groups Projects
Commit 7c3a1da9 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Put generated source files in a dedicated output directory.

Win32 rgbmap.s is different than other platforms, so they can't go
into the same place.
parent c6d284b3
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #4238 failed
......@@ -68,6 +68,7 @@
# OBJODIR - Object output dir #
# LIBODIR - Library output dir #
# EXEODIR - Executable output dir #
# SRCODIR - Source code output dir #
# DEBUG - Set for debug builds #
# RELEASE - Set for release builds #
# One of DEBUG or RELEASE is always set! #
......@@ -273,6 +274,7 @@ LIBODIR := $(CCPRE).$(machine).lib.$(BUILDPATH)
OBJODIR := $(CCPRE).$(machine).obj.$(BUILDPATH)
MTOBJODIR := $(CCPRE).$(machine).obj.$(BUILDPATH)-mt
EXEODIR := $(CCPRE).$(machine).exe.$(BUILDPATH)
SRCODIR := $(CCPRE).$(machine).src.$(BUILDPATH)
LDFLAGS += -L$(LIBODIR)
ifeq ($(os),openbsd)
......@@ -487,6 +489,7 @@ depend:
$(QUIET)$(DELETE) $(MTOBJODIR)/.depend
$(QUIET)$(DELETE) $(LIBODIR)/.depend
$(QUIET)$(DELETE) $(EXEODIR)/.depend
$(QUIET)$(DELETE) $(SRCODIR)/.depend
$(QUIET)$(MAKE) BUILD_DEPENDS=FORCE
FORCE:
......@@ -495,10 +498,12 @@ FORCE:
-include $(OBJODIR)/.depend
-include $(LIBODIR)/.depend
-include $(EXEODIR)/.depend
-include $(SRCODIR)/.depend
-include $(MTOBJODIR)/*.d
-include $(OBJODIR)/*.d
-include $(LIBODIR)/*.d
-include $(EXEODIR)/*.d
-include $(SRCODIR)/*.d
$(XPDEV_LIB): xpdev
xpdev:
......
......@@ -16,6 +16,9 @@ $(LIBODIR):
$(EXEODIR):
$(QUIET)$(IFNOTEXIST) mkdir $(EXEODIR)
$(SRCODIR):
$(QUIET)$(IFNOTEXIST) mkdir $(SRCODIR)
clean:
clean:
@echo Deleting $(OBJODIR)$(DIRSEP)
......@@ -26,3 +29,5 @@ clean:
-$(QUIET)$(DELETE) $(LIBODIR)$(DIRSEP)*
@echo Deleting $(EXEODIR)$(DIRSEP)
-$(QUIET)$(DELETE) $(EXEODIR)$(DIRSEP)*
@echo Deleting $(SRCODIR)$(DIRSEP)
-$(QUIET)$(DELETE) $(SRCODIR)$(DIRSEP)*
CIOLIB-MT = $(CIOLIB_SRC)$(DIRSEP)$(LIBODIR)$(DIRSEP)$(LIBPREFIX)ciolib_mt$(LIBFILE)
CIOLIB-MT_CFLAGS = -I$(CIOLIB_SRC)
CIOLIB-MT_CFLAGS = -I$(CIOLIB_SRC) -I$(CIOLIB_SRC)$(DIRSEP)$(SRCODIR)
CIOLIB-MT_LDFLAGS = -L$(CIOLIB_SRC)$(DIRSEP)$(LIBODIR)
CIOLIB-MT_LIBS = $(UL_PRE)ciolib_mt$(UL_SUF)
......@@ -3,6 +3,7 @@ SRC_ROOT = ..
include $(SRC_ROOT)/build/Common.gmake # defines clean and output directory rules
CFLAGS += $(XPDEV-MT_CFLAGS) $(HASH_CFLAGS) $(ENCODE_CFLAGS) $(CIOLIB-MT_CFLAGS)
VPATH = $(SRCODIR)
ifeq ($(os),win32)
ifndef WITHOUT_GDI
......@@ -48,7 +49,8 @@ endif
# CIOLIB Library Link Rule
$(CIOLIB-MT_BUILD): $(MTOBJODIR) $(OBJS) $(CIOLIB_INTERPOLATE_TARGET)
$(CIOLIB-MT_BUILD): $(MTOBJODIR) $(OBJS) $(CIOLIB_INTERPOLATE_TARGET) $(MTOBJODIR)$(DIRSEP)rgbmap$(OFILE)
@echo Creating $@ ...
$(QUIET)$(AR) rc $@ $(OBJS)
$(QUIET)$(RANLIB) $@
......@@ -69,13 +71,13 @@ endif
$(EXEODIR)$(DIRSEP)genmap$(EXEFILE): $(EXEODIR)
rgbmap.s: $(EXEODIR)$(DIRSEP)genmap$(EXEFILE)
$(SRCODIR)$(DIRSEP)rgbmap.s: $(EXEODIR)$(DIRSEP)genmap$(EXEFILE) $(SRCODIR)
@echo Creating $@...
$(QUIET)$(EXEODIR)$(DIRSEP)genmap$(EXEFILE) $(os)
$(QUIET)$(EXEODIR)$(DIRSEP)genmap$(EXEFILE) $(os) $(SRCODIR)
rgbmap.h: rgbmap.s
$(SRCODIR)$(DIRSEP)rgbmap.h: $(SRCODIR)$(DIRSEP)rgbmap.s
$(MTOBJODIR)$(DIRSEP)rgbmap$(OFILE): rgbmap.s rgbmap.h
$(MTOBJODIR)$(DIRSEP)rgbmap$(OFILE): $(SRCODIR)$(DIRSEP)rgbmap.s $(SRCODIR)$(DIRSEP)rgbmap.h
$(EXEODIR)$(DIRSEP)genmap$(EXEFILE): genmap.c
@echo Compiling $@...
......
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
......@@ -56,12 +57,22 @@ init_r2y(void)
int
main(int argc, char **argv)
{
FILE *s = fopen("rgbmap.s", "w");
FILE *h = fopen("rgbmap.h", "w");
FILE *r = fopen("r2y.bin", "wb");
FILE *y = fopen("y2r.bin", "wb");
FILE *s, *h, *r, *y;
char path[1024];
char *mangle = "";
if (argc != 3) {
fprintf(stderr, "Usage: %s <os> <path>\n", argv[0]);
return EXIT_FAILURE;
}
sprintf(path, "%s/rgbmap.s", argv[2]);
s = fopen(path, "w");
sprintf(path, "%s/rgbmap.h", argv[2]);
h = fopen(path, "w");
sprintf(path, "%s/r2y.bin", argv[2]);
r = fopen(path, "wb");
sprintf(path, "%s/y2r.bin", argv[2]);
y = fopen(path, "wb");
init_r2y();
if (argc > 1 && strcmp(argv[1], "win32") == 0)
mangle = "_";
......@@ -91,5 +102,5 @@ main(int argc, char **argv)
fclose(h);
fclose(r);
fclose(y);
return 0;
return EXIT_SUCCESS;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment