[OpenWrt-Devel] [PATCH v5] build: refactor JSON info files to `profiles.json`

Paul Spooren mail at aparcar.org
Wed Mar 11 20:46:08 EDT 2020


On Wed Mar 11, 2020 at 2:12 AM PST, Petr Štetiar wrote:
> Paul Spooren <mail at aparcar.org> [2020-03-10 18:11:21]:
>
> > +  $$(_TARGET): $(BUILD_DIR)/json_info_files/$(call IMAGE_NAME,$(1),$(2)).json
> > +  $(BUILD_DIR)/json_info_files/$(call IMAGE_NAME,$(1),$(2)).json: $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX)
>
> This JSON file target is relatively long, used twice already, perhaps
> using
> common short variable would make sense here.

$(JSON_INFO_FILE) introduced

>
> >  		$(TOPDIR)/scripts/json_add_image_info.py \
>
> You're missing here that output file argument.

Now uses $$@

>
> > +  ROOTFS/$(1)/$(3) := \
> > +	$(KDIR)/root.$(1)$$(strip \
> > +		$$(if $$(FS_OPTIONS/$(1)),+fs=$$(call param_mangle,$$(FS_OPTIONS/$(1)))) \
> > +	)$$(strip \
> > +		$(if $(TARGET_PER_DEVICE_ROOTFS),+pkg=$$(ROOTFS_ID/$(3))) \
> > +	)
> > +  ifndef IB
> > +    $$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3)))
> > +  endif
> > +  $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3))
> > +	@rm -f $$@
> > +	[ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ]
> > +	$$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2))))
> > +
> > +  .IGNORE: $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))
> > +
> > +  $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)).gz: $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2))
> > +	gzip -c -9n $$^ > $$@
> > +
> > +  $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)): $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2))
> > +	cp $$^ $$@
> > +
>
> Is this reordering necessary? If so, I would probably do that in
> separate patch for
> easier review.

Now again in old order and still works

>
> > diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
> > index 15b3d5c35c..7d5eddaff6 100644
> > --- a/target/imagebuilder/files/Makefile
> > +++ b/target/imagebuilder/files/Makefile
> > @@ -118,6 +118,7 @@ _call_image: staging_dir/host/.prereq-build
> >  	$(MAKE) package_install
> >  	$(MAKE) -s prepare_rootfs
> >  	$(MAKE) -s build_image
> > +	$(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO),$(_SINGLE)$(SUBMAKE) -r json_overview_image_info)
> >  	$(MAKE) -s checksum
>
> Seems like copy&paste from the `world` target. I think, that:
>
> $(MAKE) -s json_overview_image_info
>
> would make more sense here.

ACK, c&p indeed

> I would as well move that if somewhere else.

Where should I move it? Into the $(BIN_DIR)/profiles.json target?

>
> > world: prepare $(target/stamp-compile) $(package/stamp-compile) $(package/stamp-install) $(target/stamp-install) FORCE
> >        $(_SINGLE)$(SUBMAKE) -r package/index
> > +       $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO),$(_SINGLE)$(SUBMAKE) -r json_overview_image_info)
> >         $(_SINGLE)$(SUBMAKE) -r checksum
>
> Same here, move that if and the common place to not repeat that
> condition two times etc.
>
> $(_SINGLE)$(SUBMAKE) -r json_overview_image_info

Updated, same question regarding the IF

Thanks,
Paul

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list