diff --git a/packages/chm/Makefile b/packages/chm/Makefile index 804dd92059..d576475973 100644 --- a/packages/chm/Makefile +++ b/packages/chm/Makefile @@ -302,6 +302,11 @@ ifdef CPU_TARGET FPC_TARGETOPT+=--cpu=$(CPU_TARGET) endif LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT) +ifdef PACKAGEDIR_MAIN +COMPILER_TARGETDIR=$(PACKAGEDIR_MAIN)/bin/$(TARGETSUFFIX) +else +COMPILER_TARGETDIR=bin/$(TARGETSUFFIX) +endif override INSTALL_FPCPACKAGE=y ifdef REQUIRE_UNITSDIR override UNITSDIR+=$(REQUIRE_UNITSDIR) diff --git a/packages/chm/Makefile.fpc b/packages/chm/Makefile.fpc index 3c5cc3bfbc..592626e48c 100644 --- a/packages/chm/Makefile.fpc +++ b/packages/chm/Makefile.fpc @@ -24,6 +24,13 @@ ifdef CPU_TARGET FPC_TARGETOPT+=--cpu=$(CPU_TARGET) endif LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT) +# By default COMPILER_TARGETDIR is set to '.'. This is passed in the -FE parameter to the compiler +# which leads to executables being placed into the wrong directory by the compiler. +ifdef PACKAGEDIR_MAIN +COMPILER_TARGETDIR=$(PACKAGEDIR_MAIN)/bin/$(TARGETSUFFIX) +else +COMPILER_TARGETDIR=bin/$(TARGETSUFFIX) +endif [rules] .NOTPARALLEL: