Jump to content

Build_Clover.command, another Script to build standard Clover (or customized)


Micky1979
2,126 posts in this topic

Recommended Posts

Yeah, you are correct, that is tool not needed, only GenPage and EfiLdrImage are. However, the problem is now that those binaries are needed for multiple platforms, they were built automatically before when you setup edk2. So I think that requiring that the edk2 branch be UDK2018 for building the legacy firmware be required is the best approach. Building UEFI only can still happen on the master. Otherwise, they need to be built on the platform or we restrict building the legacy firmware to a specific platform, maybe even version, of macOS. This is just too much work to be reasonable as then we'd have to maintain and support those tools as well.

 

EDIT: Changed UDK2017 to UDK2018.

Edited by apianti
Link to comment
Share on other sites

The problem is they are built for the platform you are on when you setup edk2. We could move them into the clover repo but if you look at the commit I linked that removed them, they are built differently for macOS, windows, and linux. So we would have to add the step to make sure they are built, so it is probably just easier to only build the legacy firmware on the condition of using the UDK2018 branch of edk2.

 

EDIT: Forgot to mention that they can't even be built in windows, they need cygwin, they have a special repository for the win32 binaries.

EDIT2: I keep writing UDK2017 but I meant UDK2018.

Edited by apianti
Link to comment
Share on other sites

We also can keep BaseTools/Sources in our Patches_for_EDK2. Anticommit or antiupdate :)

Clover repo already contains numerous sources that double EDK2 to prevent them from EDK group's quest on the meaning of life.

  • Like 2
Link to comment
Share on other sites

5 hours ago, Slice said:

We also can keep BaseTools/Sources in our Patches_for_EDK2. Anticommit or antiupdate :)

Clover repo already contains numerous sources that double EDK2 to prevent them from EDK group's quest on the meaning of life.

This work: Patches_for_EDK2.zip (against sf r28473 or github a5274cd which seems to be ahead and sf not yet synchronized) with the missing stuff. Makefile udjusted. I left there BootSectImage and GnuGenBootSector but I'm going to try w/o them.

Should we patch UDK2018 as well? Should work I guess as is...

 

EDIT 

lighter solution w/o BootSectImage and GnuGenBootSector:

Patches_for_EDK2.zip

 

17 hours ago, apianti said:

No, the DuetPkg was only needed for one library which has now been moved into the clover repo. Only those tools are needed.

Yep, but when Slice said "without Duet dependencies" I thought just without the legacy firmware. Later I see the commit.

Edited by vector sigma
lighter solution
Link to comment
Share on other sites

19 minutes ago, Slice said:

I committed this. Hope it will works for those who use updated EDK2.

Also GenVtf was removed in latest commits, apart that, I can't see commits that prevent Clover to be up and running, so r28473 should be used instead of 28338.

I mean from source forge svn

  • Like 1
Link to comment
Share on other sites

28 minutes ago, vector sigma said:

Also GenVtf was removed in latest commits, apart that, I can't see commits that prevent Clover to be up and running, so r28473 should be used instead of 28338.

I mean from source forge svn

I see no usage for this application

 

Quote

GenVtf.exe - generate the Boot Strap File (AKA Volume Top File, or VTF) for IPF images

 

Link to comment
Share on other sites

10 minutes ago, Slice said:

I see no usage for this application

was just to mention changes and to avoid mixed stuff in BaseTools with new patches (I had to remove it from BaseTools/C/GNUmakefile), i.e "update" and re-patch it :)

Edited by vector sigma
typo
Link to comment
Share on other sites

6 minutes ago, apianti said:

BaseTools/C/Makefile is missing from that patch. And that tool GenVtf was removed with IPF support, which is Itanium, the most dead of dead platforms. lol

I was speaking about BaseTools/Source/C/GNUmakefile, anyway I removed it from the copy I used (with Duet) :)

Edited by vector sigma
Link to comment
Share on other sites

9 minutes ago, apianti said:

Yes I know, I was saying the file BaseTools/Source/C/Makefile (I wrote it wrong in my initial post but fixed it) is not in the patch but needs to be.

Is used in Windows? I followed your advice..

 

20 hours ago, apianti said:

EDIT: Forgot to mention that they can't even be built in windows, they need cygwin, they have a special repository for the win32 binaries.

..or I missunderstood you. Later I'll add it back

Edited by vector sigma
Link to comment
Share on other sites

Just now, apianti said:

 

No. It is for cygwin and some distributions of linux/unix. https://www.gnu.org/software/make/manual/html_node/Makefile-Names.html

it is ok the following:

## @file
# Windows makefile for C tools build.
#
# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
HOST_ARCH = IA32

!INCLUDE Makefiles\ms.common

LIBRARIES = Common
APPLICATIONS = \
  BrotliCompress \
  EfiLdrImage \
  EfiRom \
  GenCrc32 \
  GenFfs \
  GenFv \
  GenFw \
  GenPage \
  GenSec \
  LzmaCompress \
  Split \
  TianoCompress \
  VolInfo \
  VfrCompile \
  DevicePath

all: libs apps install

libs: $(LIBRARIES)
	@echo.
	@echo ######################
	@echo # Build libraries
	@echo ######################
	@if not exist $(LIB_PATH) mkdir $(LIB_PATH)
	@Makefiles\NmakeSubdirs.bat all $**

apps: $(APPLICATIONS)
	@echo.
	@echo ######################
	@echo # Build executables
	@echo ######################
	@if not exist $(BIN_PATH) mkdir $(BIN_PATH)
	@Makefiles\NmakeSubdirs.bat all $**

install: $(LIB_PATH) $(BIN_PATH)
	@echo.
	@echo ######################
	@echo # Install to $(SYS_LIB_PATH)
	@echo # Install to $(SYS_BIN_PATH)
	@echo ######################
	@-xcopy $(LIB_PATH)\*.lib $(SYS_LIB_PATH) /I /D /E /F /Y > NUL 2>&1
	@-xcopy $(BIN_PATH)\*.exe $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1
  @-xcopy $(BIN_PATH)\*.bat $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1

.PHONY: clean
clean:
  @Makefiles\NmakeSubdirs.bat clean $(LIBRARIES) $(APPLICATIONS)

.PHONY: cleanall
cleanall:
  @Makefiles\NmakeSubdirs.bat cleanall $(LIBRARIES) $(APPLICATIONS)

!INCLUDE Makefiles\ms.rule

?

anyway looks a windows only stuff

Link to comment
Share on other sites

This is the first changes they have made to base tools in a very long time, pretty sure most of the other makefiles haven't been touched in like eight or nine years.

 

EDIT: Also just confirmed that my base tools binaries in windows are 32bit.

Edited by apianti
  • Like 1
Link to comment
Share on other sites

================================================================================
Downloading Clover, using the latest revision
                             <--------------------------------------------------
Unable to get latest Clover revision, check your internet connection or try later.

 

  • Sad 1
Link to comment
Share on other sites

40 minutes ago, SavageAUS said:

================================================================================
Downloading Clover, using the latest revision
                             <--------------------------------------------------
Unable to get latest Clover revision, check your internet connection or try later.

 

 

I use Build_Clover.command v4.9.5: at instant, all works fine for Clover. New little issue with SourceForge?.

Link to comment
Share on other sites

×
×
  • Create New...